Appium + Python自动化 - 元素定位uiautomatorviewer_无敌..的博客-程序员秘密

技术标签: 测试  

 元素定位主要介绍如何使用uiautiomatorviewer,通过定位到页面上的元素,然后进行相应的点击等操作。uiautiomatorviewer是android-sdk自带的一个元素定位工具,非常简单好用,使用uiautomatorviewer,你可以检查一个应用的UI来查看应用的布局和组件以及相关的属性。

一、启动uiautomatorviewer.bat

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

    

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

    

    3.也可以使用命令行进行启动,cd到tools目录下,然后输入uiautomatorviewer.bat回车后启动服务。

    

 

二、连接手机

    1.cmd打开输入adb devices,确认手记已连接

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

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

     

 

三、定位元素

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

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

    

    text:搭配新宠不能缺

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

    class:android.widget.EditText

 

四、点搜索框

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

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

    

 

五、最终代码如下

# 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然后会自动匹配出来

    

   2.多的三个:

      driver.find_element_by_accessibility_id()

      driver.find_element_by_android_uiautomator()

      driver.find_element_by_ios_uiautomation()

      (第三个是ios的专用的)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_42350970/article/details/85228988

智能推荐

javaIO--字节流_baixiao9898的博客-程序员秘密

流---是指的一组有序的、有气垫和重点的字节集合,是对的护具传输的总称或者抽象。流采用缓冲区技术,当写一个数据时,系统将数据发送到缓冲区而不是外部设备(如硬盘),当读一个数据时,系统实际是从缓冲区读取数据的。流的存在:我们都知道输入流和输出流,二者的定义都是基于数据流向且是以内存为坐标的。标准输入过程中,数据从键盘等输入设备流向内存,这事输入流。标准输出过程中,数据从内存输出到显...

Android Studio记录一个错误:jar 未签名。_新手上路狂踩坑的博客-程序员秘密

记录一个错误这一块第一次接触签名选V2的验证签名时的错误jarsigner -verbose -certs -verify app-release.apk改选V1后是这样的没看过多少学习的道路还很长,得看看书籍和教程再来改_1671465600

ClickHouse王炸功能即将来袭?_hzbooks的博客-程序员秘密

众所周知,MySQL 的用户群体很大,为了能够增强数据的实时性,很多解决方案会利用 binlog 将数据写入到 ClickHouse。为了能够监听 binlog 事件,我们需要用到类似 ...

【云原生与5G】微服务加持5G核心网_柒号华仔的博客-程序员秘密_5g微服务

随着微服务架构的发展普及,加上5G技术的演进和发展需求,5GC将云原生的微服务架构引入,构建了面向业务的SBA架构,实现了低耦合+高内聚的技术升级。

SAP BASIS经验书 _congchui5375的博客-程序员秘密

第 一 章 SAP Basis第一步许多人问到SAP Basis如何入门,基本上要学SAP Basis之前必须先有下列几项基本知识与经验,才可以事半功倍:1.多种操作系...

c++基于opencv的车道识别,在unity仿真场景下运行_此人未设置昵称的博客-程序员秘密_unity车道细化

最近在unity仿真上做智能驾驶,车道线识别这块,网上找了很多教程,很多都行不通,要不就是不适用,总之各种问题,干脆自己写一个(参考了很多前人的经验),代码粘在最下面,备忘。不bb,先上图首先是原图然后是效果图unity截图unity效果截图一、整体思路:opencv:看起来复杂,其实套路都一样,就是调参的时候费劲。我是基于图片写的,视频的话需要拆成一...

随便推点

一文看懂混淆代码——Java Decompiled过程和代码阅读_weixin_34038293的博客-程序员秘密

本文不是讲解传统源码的阅读, 而是『别人的APK源码』该怎么阅读。项目背景此前,由于工作的原因,反编译竞品SDK,通过逆向的手段修复其源码并编译运行。前端之下,本无秘密。相对于前端源码,Android APK源码并不是那么容易获取。由于Android这样一个开发的系统和使用java编写应用使得源码的...

解决Android Studio3.5+中文字体不一致的问题_jqorz的博客-程序员秘密

Android Studio升级3.5之后,会出现中文字体不一致的问题,原因是升级后,部分英文字体不包含中文字库,解决方法:如果没有显示Current editor font:xxx--defined in the color scheme,则直接修改Editor->Font->Fallback font中的字体即可,比如SimHei。如果显示了Current editor f...

使用node.js开发博客_风里有诗句哈的博客-程序员秘密_node.js开发博客

ECMAScript是语法规范nodejs =ECMAScript + nodejsAPI,可完成服务端的任何操作js =ECMAScript + WebAPIcommon.js是nodejs的模块化规范使用方法a.js中写入function add(a, b) { return a + b;}module.exports = add;b.js中写入...

Java Map集合利用比较器Comparator根据Key和Value的排序_最是那一低头的温柔的博客-程序员秘密

Java技术学习 https://www.itkc8.com查看原文:http://www.ibloger.net/article/154.htmlTreeMap排序根据Key进行排序Map的根据key排序需要用到TreeMap对象,因为它是默认按照升序进行输出的,可以使用比较器compareTo对它进行降序排序,Comparator可以对集合对象或者数组进行排序的比较器接口,实现...

“当我在荒废时间的时候会有多少人在拼命。”——转自豆瓣_adam3342的博客-程序员秘密

大学的时候减肥,每天至少1500米吧,外加不怎么吃东西,坚持了两三个月吧,减掉35斤吧。  然后考研,每天6点差10分起床,接近凌晨1点睡觉坚持了8个月,暑假的时候上海刮台风,学校的树连根拔起来好几颗,水漫到和图书馆的台阶齐平,我穿拖鞋去图书馆看书,整个图书馆只有4个人,就是我所在的考研小团队~,呵呵,最后大家的成绩可以说是惊人的高了。  然后考CFA,准备时间不充分,考前

Window Internal 读书笔记_weixin_34150224的博客-程序员秘密

Chapter 1Virtual Memory. The size of the virtual address space varies for each hardware platform ... The mappings of the lower half change to(change是什么意思?从句意来看应该是:mappings变成(变化/改变...

推荐文章

热门文章

相关标签