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。

原文地址:https://www.cnblogs.com/qianmaoliugou/p/9065114.html

时间: 2024-08-01 18:32:46

Appium+python移动自动化测试(四)--Monitor/uiautomatorviewer工具及元素定位方法的相关文章

基于C#的Appium自动化测试框架(Ⅱ):Android元素定位

我们知道,Appium的原理上是通过RemoteWebDriver提供了元素定位功能,再根据定位后的元素进行操作,比如: protected static RemoteWebDriver CalculatorSession; CalculatorSession.FindElementByName("One").Click(); 工作的重点就是定位到对应的元素,Appiuim提供了很多用来定位元素的方法,具体包括: FindElement(By by); FindElementByCla

Robotframework + Appium 之常用元素定位方法

任何自动化测试,其实手动测试也是一样的,元素定位(目标定位)是首要任务,这是最直接的测试对象呀! 好了,废话不多说,又到了元素定位啦,之前我们已经介绍过selenium及appium常用的定位方法,下面再单独介绍下 Robotframework-AppiumLibrary常用元素定位方法,其实它们的思想是一样的,只是格式上有些差异,详情如下: AppiumLibrary需要在应用程序中查找元素的所有关键字都使用参数locator.当提供locator值时,它将与特定元素类型的键属性进行匹配. 常

Appium学习笔记4_元素定位方法

Appium之元素定位,如果对Android上如何使用工具获取页面元素有问题的,请转战到这:http://www.cnblogs.com/taoSir/p/4816382.html. 下面主要是针对自己的了解和学习,简单的总结下关于Appium native APP上的一些元素定位方法的使用以及通过UI Automator Viewer定位页面以后,如果从上面定位到你想使用的元素. 已淘宝为例,来进行元素的定位.打开UI Automator Viewer Appium和Webdriver有一点区

appium+python搭建自动化测试框架_Appium元素定位(二)

1. id定位: self.driver.find_element_by_id('com.tencent.mobileqq:id/btn_login').click() 2. class定位: self.driver.find_element_by_class_name('android.widget.Button').click() (注:一般一个页面上的class属性不唯一,元素不唯一的话定位会报错了) 3. 相对定位: 相对定位是先找到该元素的有对应属性的父元素节点,然后基于父元素进行元素

Appium+python自动化(十二)- Android UIAutomator终极定位凶“胸”器(七)(超详解)

简介 乍眼一看,小伙伴们觉得这部分其实在异性兄弟那里就做过介绍和分享了,其实不然,上次介绍和分享的大哥是uiautomatorviewer,是一款定位工具.今天介绍的是一个java库,提供执行自动化测试的各种API. Android团队在4.1版本(API 16)中推出了一款全新的UI自动化测试工具UiAutomator,用来帮助开发人员更有效率的完成App的Debug工作,同时对于测试人员也是一大福音,为什么这么说呢? QA:“那个谁谁谁,我刚刚操作的时候,我发现了一个bug,你写的App打开

[python爬虫] Selenium常见元素定位方法和操作的学习介绍

这篇文章主要Selenium+Python自动测试或爬虫中的常见定位方法.鼠标操作.键盘操作介绍,希望该篇基础性文章对你有所帮助,如果有错误或不足之处,请海涵~ 前文目录: [Python爬虫] 在Windows下安装PhantomJS和CasperJS及入门介绍(上) [Python爬虫] 在Windows下安装PIP+Phantomjs+Selenium [Python爬虫] Selenium自动访问Firefox和Chrome并实现搜索截图 [Python爬虫] Selenium实现自动登

Appium+python移动自动化测试(三)--demo

写在前面: appium环境搭建好了,Genymotion模拟器也配置ok,接下来就开始写第一个demo 一.获取apk包名 打开cmd,输入指令aapt dump badging D:\test\xxx.apk(APK的全名,如魔漫相机.apk). 如果通过appium获取包名,可能不准确. 包名:com.manboker.headportrait 二.获取launcherActivity 接上一步,再cmd界面查找.魔漫相机的launcherActivity值为com.manboker.he

appium+python搭建自动化测试框架_Tools安装(一)

1.下载node   https://nodejs.org/en/download/, 下载node.js   验证安装: node -v 2.下载jdk  https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html?utm_source=androiddevtools&utm_medium=website 配置环境变量: JAVA_HOME     jdk安装路径 CLASSPATH 

appium+python搭建自动化测试框架_TestAPP框架(三)

Pycharm 创建 Project,搭建 APPTEST框架如下图: 1.框架功能 业务功能的封装 测试用例封装 测试包管理 截图处理 断言处理 日志获取 测试报告生成 数据驱动 数据配置 2. driver封装 config文件夹创建app_config.yaml 文件,存放配置app的配置信息 platformName: Android platformVersion: 5.1.1 deviceName: 127.0.0.1:62001 #mx4真机 #platformVersion: 5