Appium+python自动化测试(四)-uiautomatorviewer及元素定位方法

写在前面:

本文介绍识别元素的工具和元素的定位方法,识别元素的工具主要有uiautomator和monitor,以及Appium Inspector(Windows下小编在1.7.0之后版本可使用,1.4.16版本不行),本系列教程用的appium1.4.16本文,故暂不介绍Appium Inspector。

一、常用的识别元素的工具介绍

启动uiautomatorviewer.bat/monitor.bat。打开sdk/tools目录找到uiautomatorviewer.bat/monitor.bat.如图:

双击后启动,启动后如图

二、Monitor连接手机

win+R快捷键输入cmd打开,输入adb devices,确认当前有设备接入。

打开魔漫相机主界面,在Monitor界面点击手机机器人小图标,此按钮每次都会刷新最新界面

三、定位元素

移动鼠标到需要定位的元素区域,并点击一下,使红色实线条框住。点击按钮进漫画

四、点击我的按钮

通过resource-id定位并点击.最终代码如下:

#coding:utf-8

importtime

fromappiumimportwebdriverdesired_caps = {}desired_caps['deviceName'] ='192.168.199.101:5555'desired_caps['platformName'] ='Android'desired_caps['platformVersion'] ='5.0'desired_caps['appPackage'] ='com.manboker.headportrait'desired_caps['appActivity'] ='com.manboker.headportrait.activities.FirstActivity'driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)time.sleep(8)#休眠8秒driver.find_element_by_id('com.manboker.headportrait:id/entry_album_set').click()#点击进入我的页面driver.quit()

五、Appium工具简单使用介绍

双击appium.exe打开,进setting界面。如下截图1是被测apk的路径,截图2查看app的包名及Launch Activity,截图3是被测app的设备名

开启appium

确认手机成功电脑,点击搜索按钮右侧的三角形图标启动appium服务,当界面出现如下现象则证明服务已启动。

Remote远程控制(appium--General Setting界面)

appium默认服务地址是127.0.0.1端口号4723,一般在本地机器上调试的话,无需修改。

若是远程到某台自动化测试电脑运行则此ip就能派上用场了,通过修改如下代码即可

driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

改成:

driver = webdriver.Remote('http://192.168.0.105:4723/wd/hub', desired_caps)

截图如下:ipconfig查看电脑ip

远程连接

浏览器输入:http://192.168.0.105:4723/wd/hub,看到如下界面,证明连接成功

脚本里的代码修改后如下

#coding:utf-8

importtimefromappium

importwebdriverdesired_caps={}desired_caps['deviceName'] ='192.168.199.101:5555'desired_caps['platformName'] ='Android'desired_caps['platformVersion'] ='5.0'desired_caps['appPackage'] ='com.manboker.headportrait'desired_caps['appActivity'] ='com.manboker.headportrait.activities.FirstActivity'driver= webdriver.Remote('http://192.168.0.105:4723/wd/hub', desired_caps)time.sleep(8)#休眠8秒driver.find_element_by_id('com.manboker.headportrait:id/entry_album_set').click()time.sleep(5)driver.quit()

六、元素定位(常用方法)

通过id定位

取resource-id的值:driver.find_element_by_id('com.manboker.headportrait:id/entry_album_set')

通过class_name定位

取class内容:driver.find_element_by_class_name("android.widget.ImageView")

通过text定位

使用text的内容:driver.find_elements_by_android_uiautomator("new UiSelector().text(\"登录\")")

通过name定位:driver.find_element_by_name()

通过xpath定位:driver.find_element_by_xpath("//android.widget.TextView[@resource-id=\"com.manboker.headportrait:id/nologin_retry\"]")

通过css_selector定位:driver.find_element_by_css_selector()

如上的方法pycharm输入driver.find_element_by会自动匹配出来。

OK,本文就介绍到这,下篇介绍Appium Python API。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180520G1HJPZ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券