在使用appium真机模拟微信登录的时候,使用appium是没有问题,但是在使用pycarhm连接appium的时候在执行如下语句的时候出现问题
webdriver.Remote(DRIVER_SERVER, self.desired_cap)
在执行这条语句的时候,显示一直在执行,就不会在执行下面的语句了。仿佛进入了死循环。
def __init__(self):
# 初始化
print("__init__")
self.desired_cap = {
"platformName": PlatformName,
"deviceName": DeviceName,
"appPackage": AppPackage,
"appActivity": AppActivity
}
print("__init___2")
# 在DRIVER_SERVER中存放地址,desired_cap中存放驱动配置
# print(DRIVER_SERVER)
# print(self.desired_cap)
self.driver = webdriver.Remote(DRIVER_SERVER, self.desired_cap)
print("__init___3")
self.wait = WebDriverWait(self.driver, 10)
print("__init___4")
执行结果:
__init__
__init___2
使用appium真机测试试没有问题的
在度娘找了好久,解决方法也都试了,没有解决,无奈下将appium卸载后,重新安装,sdk重新添加到环境变量。
在执行还是不行。原因不明,仍在调查
方法一:
是重新下载的sdk,将platform-tools文件夹和tools文件夹路径添加到变量中后才成功运行的,
我的系统的环境变量:
C:\Program Files (x86)\Common Files\Oracle\Java\javapath;E:\Anaconda3;E:\Anaconda3\Library\mingw-w64\bin;E:\Anaconda3\Library\usr\bin;E:\Anaconda3\Library\bin;E:\Anaconda3\Scripts;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;D:\ffmpeg-20180813-551a029-win64-static\bin;D:\WinMerge;D:\phantomjs-2.1.1-windows\binD:\anzhuo\platform-tools;D:\anzhuo\tools;C:\Android;C:\Windows\System32;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
方法二:
还有个方法就是将USB线拔出来在插进去,在去执行也可以。
方法三:
刚刚发现的一个方法,因为我的登录代码是封装到类中的,所以我先实例化一个类,在外部通过类对象调用每个方法,而我将所有需要调用的方法在类定义中重新封装到一个方法里,直接通过类对象调用这一个方法就可以。
修改前方法:
# 实例化类对象
mo = Moments()
# 登录
mo.login()
# 转到朋友圈
mo.get_friends()
# 朋友圈滑动
mo.crawl()
修改后方法:
将所有调用的方法在类定义封装到一个方法里,类中定封装代码如下(新加):
# 主方法
def main(self):
# 登录
mo.login()
# 转到朋友圈
mo.get_friends()
# 朋友圈滑动
mo.crawl()
实例化对象代码如下:
# 实例化类对象
mo = Moments()
# 主方法
mo.main()
执行结果:
__init__
__init___2
__init___3
__init___4
login
login_使用账号密码登录
login_输入账号
login_输入密码
login_登录
login_识别通讯录