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.htmlhttps://www.cnblogs.com/mini-monkey/articles/11836690.html

appium常用API可参考:https://www.cnblogs.com/mini-monkey/articles/11841354.htmlhttps://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 启动

(appium+python)UI自动化_07_UI自动化实例拼多多搜索商品为例

移动UI自动化测试Appium

appium + python编写自动化脚本

基于python+appium通过图片对比来做的UI自动化

软件测试进阶之自动化测试——python+appium实例