Appium+python自动化4-元素定位uiautomatorviewer【转载】

摘要:
前言环境已经建立。下一步是元素定位。本章主要介绍如何使用uiautomatorviewer定位页面上的元素,然后相应地单击它们。使用uiautomationviewer,您可以检查应用程序的UI以查看应用程序的布局、组件和相关属性。

前言   

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

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

一、启动uiautomatorviewer.bat

    1.打开目录D:androidsdkandroid-sdk-windows ools

Appium+python自动化4-元素定位uiautomatorviewer【转载】第1张
1472105236126324.png850x502 53 KB

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

Appium+python自动化4-元素定位uiautomatorviewer【转载】第2张
 

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

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

Appium+python自动化4-元素定位uiautomatorviewer【转载】第3张



二、连接手机

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

    2.打开手机淘宝页面,让屏幕处于点亮状态

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

Appium+python自动化4-元素定位uiautomatorviewer【转载】第4张
 
三、定位元素

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

Appium+python自动化4-元素定位uiautomatorviewer【转载】第5张
 

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

text:搭配新宠不能缺

resource-id:com.taobao.taobao:id/home_searchedit

class:android.widget.EditText



四、点搜索框

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

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

Appium+python自动化4-元素定位uiautomatorviewer【转载】第6张
 

五、最终代码如下

# coding=utf-8

from appium import webdriver

import time

desired_caps = {

                'platformName': 'Android',

                'deviceName': '30d4e606',

                'platformVersion': '5.0',

                'appPackage': 'com.taobao.taobao',

                'appActivity': 'com.taobao.tao.welcome.Welcome',

                }

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

# 休眠五秒等待页面加载完成

time.sleep(5)

driver.find_element_by_id("com.taobao.taobao:id/home_searchedit").click()


六、元素定位

(此处敲黑板,做笔记!!!)

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

Appium+python自动化4-元素定位uiautomatorviewer【转载】第7张
 

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

driver.find_element_by_accessibility_id()

driver.find_element_by_android_uiautomator()

driver.find_element_by_ios_uiautomation()

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

免责声明:文章转载自《Appium+python自动化4-元素定位uiautomatorviewer【转载】》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Clion Debug模式使用实践IDEA 配置Gradle编译工具下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

thinkphp3.2配置redis缓存和文件缓存

如果您将一些常用但不易更改的数据存储在缓存中,而不是每次检查数据库,则可以大大减轻数据库的压力。最近,由于项目的需要,您尝试了Redis,但后来使用tp3.2文件缓存直接进入主题:在config中添加以下代码。php:“DATA_CACHE_PREFIX”=˃“tp”,//缓存前缀“DATA_CCACHE_TYPE”=˃“Redis”,//高速缓存类型“Re...

css动画延迟好像有点怪

项目需要使用动画Css。自定义时,会发现设置动画延迟和动画持续时间的总时间不正确,这将导致动画丢失。例如,bounceInLeft动画从左侧出现,然后抖动。当初始动画延迟为0时,动画持续时间为1s,动画已完成,但如果设置该值,动画延迟为1s且动画持续时间是2s,则动画未完成。具体的动画是从左侧出现,然后在1s延迟后直接到达终点,但没有抖动。然后我用w3c写了...

linux下ifconfig, DNS以及route配置

Linux基本网络配置命令1.ifconfig查看网络接口信息。普通用户使用的ifconfig的完整路径:/sbin/ifconfigifconfig网络接口名称:显示指定接口的详细信息。...

【Lua】table表删除指定元素 (转)

删除表时,会找到一个表。remove(table,idx)方法用于根据表中的索引进行删除。当前要求是根据值进行删除。quick-x中还有一个相应的表方法封装:1.根据表中的值删除--删除表中的指定元素(而不是根据索引)--@paramarray要操作的容器--@paramvalue删除值--@paramremo...

PB各对象常用事件

1.触发窗口中事件名称的时间01.在激活窗口之前激活触发器02。单击触发器03.Close触发器04.CloseQuery在窗口被清除或关闭时触发。...

Layui用户中心模板

id=1556此插件仅是一个用户中心的模板,必须配合这个用户中心(百搭)才能使用。插件介绍1.插件采用的是Layui前段框架2.手机端自适应3.后台采用的是多标签页,可同时打开10个标签。不填写的话自动是“网站名+用户中心”显示天气:打开后,用户登录能看到登陆地当天的天气登录公告:打开后,用户登录自动弹出公告。...