Appium+python自动化-元素定位uiautomatorviewer的使用

前言

环境搭建好了,下一步元素定位,元素定位本篇主要介绍如何使用uiautomatorviewer,通过定位到页面上的元素,然后进行相应的点击等操作.

uiautomatorviewer是android-sdk自带的一个元素定位工具,非常简单好用,使用uiautomatorviewer,你可以检查一个应用的UI来查看应用的布局和组件以及相关的属性。

一、启动uiautomatorviewer.bat

1.打开目录D:\androidsdk\android-sdk-windows\tools

1472105236126324.png850x502 53 KB

2.双击启动,启动之后出现如下界面

3如果不喜欢双击启动的话,也可以在cmd里面通过指令启动

先cd到tools目录下,然后输入uiautomatorviewer.bat回车后启动服务

二、连接手机

1.cmd打开输入adb devices,确认手机已连上

2.打开手机要使用的APP页面,让屏幕处于点亮状态

3.点左上角安卓机器人按钮Devices Screenshot按钮刷新页面

三、定位元素

1.移动鼠标到需要定位的元素上,如搜索输入框

2.右下角可以看到元素对应的属性

text:              空

resource-id: cn.qysxy.daxue:id/iv_home_top_search

class:           android.widget.ImageView

xpath:           //android.widget.ImageView[@resource-id=‘cn.qysxy.daxue:id/iv_home_top_search‘]

四、点搜索框

1.前面一篇启动app后,休眠五秒,等待页面加载完成

2.通过id来定位到搜索框,然后点击

五、最终代码如下

# 布道官--首页

from appium import webdriver
from time import sleep
import os

caps = {}
caps["platformName"] = "Android"  # 平台名称
caps["platformVersion"] = "5.1.1"  # 设备系统的版本号
caps["deviceName"] = "127.0.0.1:62001"  # 夜神虚拟机
caps["appPackage"] = "cn.qysxy.daxue"
caps["appActivity"] = ".modules.login.LoginActivity"
caps["noReset"] = "true"
driver = webdriver.Remote(‘http://127.0.0.1:4723/wd/hub‘, caps)

# 隐式等待 ,如果没有找到"布道官"会报错
# driver.implicitly_wait(10)
# 获取结果文本
res_text = driver.find_element_by_id(‘cn.qysxy.daxue:id/tv_login_enterprise_name‘).text
assert res_text == ‘布道官‘

  

六、元素定位

1.appium的webdriver提供了11种元素定位方法,在selenium的基础上扩展了三个,可以在pycharm里面输入driver.find_element_by然后会自动匹配出来

2.多的三种如下,在后面的会详细介绍

driver.find_element_by_accessibility_id()

driver.find_element_by_android_uiautomator()

driver.find_element_by_ios_uiautomation()

(第三个是ios的可以暂时不用管)

原文地址:https://www.cnblogs.com/liunaixu/p/11051804.html

时间: 2024-08-03 11:42:54

Appium+python自动化-元素定位uiautomatorviewer的使用的相关文章

Appium+python (3) 元素定位(1)

打开问价夹下面的uiautomatorviewer: 夜神模拟器里的App后,回到uiautomatorviewer: 点击左上角的Device Screenshot,这时你的夜神模拟器页面就会显示在这里,右侧就是对应的定位信息了,我们主要依靠右下角的Node Detail信息进行定位. 如果你有selenium的基础,那接下来介绍的基本一致,只是换了个方法而已: text find_element_by_name(u"视频") id find_element_by_resource-

appium+python自动化30-list定位(find_elements)

前言 有时候页面上没有id属性,并且其它的属性不唯一,平常用的比较多的是单数(element)的定位方法,遇到元素属性不唯一,就无法直接定位到了. 于是我们可以通过复数(elements)定位,先定位一组元素,再通过下标取出元素,这样也是可以定位到元素的. 单数与复数 1.find_element开头的是13种单数定位 2.find_elements开头是13种复数定位 定位一组对象 1.对比用单数定位find_element和复数定位find_elements定位元素的结果 # coding:

appium+python自动化28-name定位

前言 appium1.5以下老的版本是可以通过name定位的,新版本从1.5以后都不支持name定位了 name定位报错 1.最新版appium V1.7用name定位,报错: selenium.common.exceptions.InvalidSelectorException: Message: Locator Strategy 'name' is not supported for this session 2.这个报错是说name这个定位方法目前已经不支持了,因为appium从1.5版本

Appium+python自动化

名称 链接地址 Appium+python自动化8-Appium Python API(上) http://mp.weixin.qq.com/s/WvpT5oRrYY22avI95FuypQ Appium+python自动化8-Appium Python API(下) http://mp.weixin.qq.com/s/rGWWf9m9-6n-J7KaGVlqoA Appium+python自动化9-SDK Manager http://mp.weixin.qq.com/s/wGyfXAwJ9M

appium+python自动化50-生成定位对象模板templet(jinja2)

前言 每次自己写pageobject定位元素对象太繁琐,格式都差不多,只是换个定位方法,这种就可以才有模板的方式,批量生成pageobject定位元素对象的模板 python里面生成模板有两个模块可以选择:templet和mako 简单来说,本篇实现的目的是用代码去自动生成代码,做到代码自动化 接着上一篇讲:appium+python自动化49-yaml管理定位元素 jinja2简介 1.jinja2官方文档:官方文档 要了解jinja2,那么需要先理解模板的概念.模板在Python的web开发

Appium+python自动化19-iOS模拟器(iOS Simulator)安装自家APP

前言 做过iOS上app测试的小伙伴应该都知道,普通用户安装app都是从appstore下载安装,安装测试版本的app,一般就是开发给的二维码扫码安装, 或者开发给个.ipa的安装包文件,通过itools安装.对于没有iPhone真机的小伙伴,想在iOS模拟器上安装app测试可不是那么容易的事情. 一.启动iOS Simulator 1.Xcode>Open Developer Tool>iOS Simulator,打开后在hardware里面选对应的iPhone版本就能启动模拟器了 2.第二

Selenium2+python自动化28-table定位【转载】

前言 在web页面中经常会遇到table表格,特别是后台操作页面比较常见.本篇详细讲解table表格如何定位. 一.认识table 1.首先看下table长什么样,如下图,这种网状表格的都是table 2.源码如下:(用txt文本保存,后缀改成html) <!DOCTYPE html><meta charset="UTF-8"> <!-- for HTML5 --><meta http-equiv="Content-Type"

Selenium2+python自动化28-table定位

前言 在web页面中经常会遇到table表格,特别是后台操作页面比较常见.本篇详细讲解table表格如何定位. 一.认识table 1.首先看下table长什么样,如下图,这种网状表格的都是table 2.源码如下:(用txt文本保存,后缀改成html) <!DOCTYPE html><meta charset="UTF-8"> <!-- for HTML5 --><meta http-equiv="Content-Type"

Appium+python自动化(十一)- 元素定位秘籍助你打通任督二脉 - 下卷(超详解)

简介 宏哥看你骨骼惊奇,印堂发亮,必是练武之奇才! 按照上一篇的节目预告,这一篇还是继续由宏哥给小伙伴们分享元素定位,是不是按照上一篇的秘籍修炼,是不是感觉到头顶盖好像被掀开,内气从头上冒出去,顿时觉得整个身体都融化了,而且身轻如燕啊!而且控制不住手,想要动手操作一番呢?那还在等什么呢,和宏哥一起练起来吧!!! 1. List定位 List故名思义就是一个列表,在python里面也有list这一个说法,如果你不是很理解什么是list,这里暂且理解为一个数组或者说一个集合.首先一个list是一个集