Appium+python移动自动化测试--Monitor/uiautomatorviewer工具及元素定位方法

Posted qianmaoliugou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Appium+python移动自动化测试--Monitor/uiautomatorviewer工具及元素定位方法相关的知识,希望对你有一定的参考价值。

写在前面:

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

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

  1. 启动uiautomatorviewer.bat/monitor.bat。打开sdk/tools目录找到uiautomatorviewer.bat/monitor.bat.如图:
    技术分享图片

     

  2. 双击后启动,启动后如图
    技术分享图片


二、Monitor连接手机

  1. win+R快捷键输入cmd打开,输入adb devices,确认当前有设备接入。
  2. 打开魔漫相机主界面,在Monitor界面点击手机机器人小图标技术分享图片,此按钮每次都会刷新最新界面技术分享图片

三、定位元素

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

    Node Detail里能看到元素对应的属性
    resource-id:com.manboker.headportrait:id/entry_album_set
    class:android.widget.ImageView
    index 界面有多个相同属性时使用

四、点击我的按钮

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

#coding:utf-8
import time
from appium import webdriver

desired_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工具简单使用介绍

  1. 双击appium.exe打开,进setting界面。如下截图1是被测apk的路径,截图2查看app的包名及Launch Activity,截图3是被测app的设备名
    技术分享图片
  2. 开启appium
    确认手机成功电脑,点击搜索按钮右侧的三角形图标启动appium服务,当界面出现如下现象则证明服务已启动。
    技术分享图片
  3. 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
    技术分享图片

  4. 远程连接
    浏览器输入:http://192.168.0.105:4723/wd/hub,看到如下界面,证明远程链接成功
    技术分享图片
  5. 脚本里的代码修改后如下
    #coding:utf-8
    import time
    from appium import webdriver
    desired_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()

     

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

  1. 通过id定位
    取resource-id的值:driver.find_element_by_id(‘com.manboker.headportrait:id/entry_album_set‘)
  2. 通过class_name定位
    取class内容:driver.find_element_by_class_name("android.widget.ImageView")
  3. 通过text定位
    使用text的内容:driver.find_elements_by_android_uiautomator("new UiSelector().text(\\"登录\\")")
  4. 通过name定位:driver.find_element_by_name()
  5. 通过xpath定位:driver.find_element_by_xpath("//android.widget.TextView[@resource-id=\\"com.manboker.headportrait:id/nologin_retry\\"]")
  6. 通过css_selector定位:driver.find_element_by_css_selector()
    如上的方法pycharm输入driver.find_element_by会自动匹配出来。

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































以上是关于Appium+python移动自动化测试--Monitor/uiautomatorviewer工具及元素定位方法的主要内容,如果未能解决你的问题,请参考以下文章

appium移动自动化测试-one demo

移动端自动化测试Appium从入门到项目实战Python版 学习 教程

Appium+python移动端自动化测试-环境搭建

Appium+python移动自动化测试--demo

移动测试之appium+python 入门代码

appium+python+Windows自动化测试文档