在APP自动化测试过程中,在Pycharm中重新下载了selenium和appium-python-client后,导致已运行通过的代码运行失败,提示:'WebDriver' object has no attribute 'find_element_by_class_name'
在百度上找了很多种方法,大多数是说要改写查找的方法,有些使用MobileBy,有些是把EC改写,尝试了这些方法后都失败了,即使改写的语句运行成功,后面的语句也会有类似提示.
从PyCharm的File->Settings->Project Interpreter中看到selenium的版本是4.4.1,appium-python-client的版本是2.6.1,从appium-python-client官网中看到2.6.1是最新版本,于是想起是不是版本不兼容问题,于是将selenium和appium-python-client下载,重新安装appium-python-client 1.3.0,问题解决。
解决步骤:
1.CMD打开Windows命令窗口,执行卸载selenium和appium-python-client命令:
pip uninstall selenium pip uninstall appium-python-client
这种方法没有实际操作,实际操作的是如下:
打开PyCharm,进入File->Settings->Project Interpreter,删除除pip和setuptools之外的所有库包(如果没有把握,建议使用前面pip uninstall命令来删除)
2.因为安装appium-python-client时会自动安装对应的selenium版本,所以接下来只要安装appium-python-client即可,我这里选择的是1.0.0,
CMD打开Windows命令窗口,执行命令:
pip install appium-python-client==1.0.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
执行后提示安装成功,如下图:
以上两步执行后返回到PyCharm查看selenium和appium-python-client版本,在File->Settings->Project Interpreter中看到安装的appium-python-client版本是1.0.0,自动安装的selenium版本是3.141.0,。
接下来返回到代码中,代码中import里面selenium和appium包已经不报错,但是像MobileBy库和MobileCommand库还是报错,于是升级appium-python-client版本到1.3.0,同样在CMD窗口中执行
pip install appium-python-client==1.3.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
执行完成
再返回代码中查看,已经没有红色波浪线报错提示
运行代码,运行成功,不会报'WebDriver' object has no attribute 'find_element_by_class_name' 或'Dict' has no founctin 'send_keys'等错误。
总结:
1.在代码编写之前,一定要注意好各个库包的版本是否匹配,selenium和appium都还在不断更新中,所以版本非常重要,目前selenium已经到了selenium4,个人还是更习惯selenium3的语法,所以选择重新安装selenium3的库包
2.使用PyCharm等类似IDE下载库包时,默认使用的是库包的最新版本,但最新版本不一定稳定且实际应用比较少,所以不建议使用IDE来下载库包,可以手动去官网下载或者使用pip下载对应版本的库包
标签:WebDriver,appium,name,no,python,selenium,client,版本,pip From: https://www.cnblogs.com/wx170119/p/16598889.html