Appium python appium 用 uiautomator2 后报错
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Appium python appium 用 uiautomator2 后报错相关的知识,希望对你有一定的参考价值。
报错信息如下:Traceback (most recent call last): File "E:/appium/find_element/capability.py", line 20, in <module> driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps) File "D:\Python\Python35\lib\site-packages\appium\webdriver\webdriver.py", line 97, in __init__ super(WebDriver, self).__init__(command_executor, desired_capabilities, browser_profile, proxy, keep_alive) File "D:\Python\Python35\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 156, in __init__ self.start_session(capabilities, browser_profile) File "D:\Python\Python35\lib\site-packages\appium\webdriver\webdriver.py", line 136, in start_session response = self.execute(RemoteCommand.NEW_SESSION, parameters) File "D:\Python\Python35\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 314, in execute self.error_handler.check_response(response) File "D:\Python\Python35\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response raise exception_class(message, screen, stacktrace)selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command 'D\:\\AndriodSDK2\\platform-tools\\adb.exe -P 5037 -s 127.0.0.1\:62025 install C\:\\Users\\Administrator\\AppData\\Local\\appium-desktop\\app-1.6.2\\resources\\app\\node_modules\\appium\\node_modules\\appium-uiautomator2-server\\apks\\appium-uiautomator2-server-v1.12.0.apk' timed out after 20000ms'; Stderr: ''; Code: 'null'
参考技术A 只要将Appium卸载,重新安装模式选择为此账户安装,成功运行。(appium+python)UI自动化_07_UI自动化实例拼多多搜索商品为例
前言
初学UI自动化的小伙伴,在配置好appium+python自动化环境后,往往不知道如何下手实现自动化。小编在初期学习的时候也有这种疑惑,在此以叮咚买菜app-搜索加车为实例,展示下appium是如何实现自动化的。
前提:已安装配置好appium+python自动化环境
一、连接手机启动app
1,连接手机
-手机USB连接电脑
-手机打开开发者模式、USB调试功能
2,基础信息配置
基础连接信息如下(以叮咚app为例):
\'platformName\': 操作平台
\'deviceName\': 设备名称
\'platformVersion\':系统版本号
\'appPackage\': apk包名
\'appActivity\':apk activity
\'noReset\': 在此会话之前不要重置应用程序状态,即非初始化。参数值:true, false
更多配置参数信息可参考:https://www.cnblogs.com/D666/p/9165086.html
备注:获取设备号/ app包名/activity详情可查看 https://www.cnblogs.com/mini-monkey/p/11691862.html
3,启动appium服务
1,启动appium获取appium服务地址
appium启动页获取host和port,默认配置host:0.0.0.0,port:4723,
即默认appium服务地址为:http://0.0.0.0:4723/wd/hub(若配置其他host&port更新http://后内容为host:port即可)
4,连接设备,启动app
Remote括号中地址:appium服务地址(步骤3中获取)
二、编写搜索脚本
1,打开定位工具uiautomatorviewer,查看元素属性
关于定位工具的可参考:https://www.cnblogs.com/mini-monkey/p/11819549.html
点击Android adk->tools->automatorviewer
鼠标选中页面元素,右下角查看元素属性
2,定位元素
元素定位方法可参考:https://www.cnblogs.com/mini-monkey/articles/11836650.html、https://www.cnblogs.com/mini-monkey/articles/11836690.html
appium常用API可参考:https://www.cnblogs.com/mini-monkey/articles/11841354.html、https://www.cnblogs.com/mini-monkey/articles/11841370.html
一般元素id存在时,先根据id定位,其次是class,然后再是xpath、uiautomator等去定位。优先级不一定是这样的,小编一般习惯这样定位,大家可以根据自己的喜好选择定位方式。
叮咚搜索商品加车过程如下:
首页点击搜索框->输入搜索关键词,点击搜索btn->搜索结果页,点击加车btn->点击购物车图标(进入购物车页)
实现搜索加车自动化便可根据以上步骤展开编写,叮咚搜索商品加车脚本如下(以搜索鸡翅为例):
备注:由于app有的页面加载需要时间,可在需要等待的地方添加等待时间。
三、实例代码详情
叮咚搜索加车的总代码如下:
1 # 叮咚appium实例 2 from appium import webdriver 3 from time import sleep 4 5 # 基础信息配置 6 desired_caps = { 7 \'platformName\': \'Android\', # 平台 8 \'deviceName\': \'emulator-5554\', # 手机设备名称 9 \'platformVersion\': \'6.0.1\', # 安卓系统版本号 10 \'appPackage\': \'com.yaya.zone\', # apk包名 11 \'appActivity\': \'com.yaya.zone.activity.SplashActivity\', # apk activity 12 \'unicodeKeyboard\': True, # 设置编码格式为unicode 13 \'resetKeyboard\': True, # 隐藏手机键盘 14 \'noReset\': True, # 非初始化 15 } 16 17 driver = webdriver.Remote(\'http://0.0.0.0:4723/wd/hub\', desired_caps) # 启动app 18 sleep(5) # 等待叮咚首页加载【app加载页面有时需加载一段时间,故可在需要加载等待的地方可加上等待时间】 19 20 driver.find_element_by_id("com.yaya.zone:id/ll_search").click() # 首页-点击搜索框 21 sleep(1) 22 driver.find_element_by_id("com.yaya.zone:id/et_what_search").send_keys("鸡翅") # 输入关键词 23 sleep(1) 24 driver.find_element_by_id("com.yaya.zone:id/btn_cancel").click() # 点击搜索btn 25 sleep(3) 26 driver.find_element_by_id("com.yaya.zone:id/iv_add_cart").click() # 搜索结果页-点击加车btn 27 sleep(1) 28 driver.find_element_by_id("com.yaya.zone:id/iv_cart").click() # 点击购物车btn,进入购物车页 29 sleep(3)
以上是关于Appium python appium 用 uiautomator2 后报错的主要内容,如果未能解决你的问题,请参考以下文章
AndroidUI自动化(python+appium)-Appium 启动