如果你还想从头学起Appium,可以看看这个系列的文章哦!

https://www.cnblogs.com/poloyy/category/1693896.html

前言

  • 上一篇文章介绍了另一块控件定位工具:UIAutomatorviewer
  • 这一篇,我们来介绍另一款工具:Appium Desktop的Inspector

UIAutomatorviewer 的局限性

  1. 不能校验我们写的定位表达式是否正确定位到控件(类似浏览器上的F12)
  2. 连接不够稳定
  3. 不能模拟用户动作

Appium Desktop 的 Inspector 的优势

  1. 可以校验定位表达式(如:XPATH表达式)
  2. 通过设置Desired Capabilities来连接手机,比较稳定
  3. 可以模拟用户动作(如:点击,返回,滑动等操作)
  4. 可以录制一系列操作,然后转换成代码

Inspector 的入门使用

  1. 首先,要启动Appium Server
  2. 然后,在窗口点击右上角Start Inspector Session(如图),即可弹出一个窗口
  3. 输入好Desired Capabilities后,点击【Start Session】就阔以啦

默认会选中Automatic Server

Will use currently-running Appium Desktop server http://localhost:4723

表示正在使用本地的Appium Server

注意:久了这里可能会为空,需要手动选择本地Appium Server哦

下方的Desired Capabilities

因为只是定位控件,所以写必传的参数就可以啦!

可以直接将下面的值改了,然后复制粘贴到右侧的 JSON Representation 内哦

{
"platformName": "Android",
"plathformVersion": ,
"deviceName": "test0106",
"appPackage": "io.manong.developerdaily",
"appActivity": "io.toutiao.android.ui.activity.LaunchActivity",
"noReset": true,
"newCommandTimeout":
}

Inspector 定位控件界面的详细介绍

怎么看功能都比UIAutomatorviewer丰富吧!哈哈哈

红色圈:截图的手机界面

不多介绍,可以点击元素

蓝色圈:顶部操作栏

从左往右的按钮依次是

  • Select Element:选择元素
  • Swipe By Coordinates:选择滑动的起始和结束位置(后面说)
  • Tap By Coordinates:使得手机界面变换可操作状态,可以点击界面的元素
  • Back:模拟Android的返回键
  • Refresh Source & Screenshot:刷新页面,用来重新获取手机当前界面
  • Start Recording:录制操作
  • Search for element:校验定位表达式
  • Copy XML Source to Clipboard:复制XML树
  • Quit Session & Close Inspector:退出当前Session

黄色圈:XML树

以XML树的形式,展示界面上的控件布局

绿色圈:控件属性区域

选择某个控件,在这里可以显示该控件的所有属性和值

Selected Element 的详细介绍

顶部的Tap、Send Keys、Clear

模拟用户的操作

  • tap:相当于点击该元素
  • send keys:输入值,针对输入框的操作
  • clear:清空所有值

建议:说实话,我不建议用这些操作,因为很容易造成断开连接(左侧界面一直loading)....反正我这边经常这样,如果不会的话当然最好用啦!

Find By xpath

提供了该元素的XPATH表达式

当然不推荐用哈,毕竟是绝对路径,太长了..........还是自己写吧!

那串黄色背景色的英文

不建议使用XPath定位器,因为它很脆弱,建议让开发团队提供独特的可访问性定位器(即:resource-id)

Attribute - Value

属性列表,后面用一篇文章单独讲解哦

Search for element 的详细介绍

选择你要校验的定位类型,然后输入你写的表达式,最后【Search】,就可以看到结果了

如果能找到Elements的话表达式就是正确的哦,然后你还可以针对该元素进行一些操作

Start Recording 的详细介绍

  • 点击开始录制之后,再点击Tap By Coordinates,进入界面可操作状态
  • 然后就可以开始点击你想要的元素了,这个时候就开始录制了
  • 最后在Recorder下面会显示对应的代码,右侧可以选择不同的语言
  • 建议:不要过多使用该功能;可以看到录制的代码是根据坐标去定位元素的,换个手机同一个元素坐标可能就不同了,可移植性不高

Appium自动化(7) - 控件定位工具之Appium 的 Inspector的更多相关文章

  1. 【WEB自动化测试之控件定位】基于HTML5控件的唯一控件属性定位

      一.WEB控件定位是什么 要想弄懂这个问题,我们还是基于实践来学习.我们先来看一条入门级别自动化测试用例的构成. DemoCase:正确用户名和密码登录博客园,登录成功 URL: https:// ...

  2. Appium自动化(6) - 控件定位工具之uiautomatorviewer 的详细介绍

    如果你还想从头学起Appium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1693896.html 前言 app定位不如web定位那么 ...

  3. App控件定位

    本文将分享Android相关基础知识和Android APP控件定位工具的使用方法. Android基础知识 Android布局 Android是通过容器的布局属性来管理子控件的位置关系(iOS去掉了 ...

  4. 【转】Appium基于安卓的各种FindElement的控件定位方法实践

    原文地址:http://blog.csdn.net/zhubaitian/article/details/39754041#t11 AppiumDriver的各种findElement方法的尝试,尝试 ...

  5. Appium基于安卓的各种FindElement的控件定位方法实践和建议

    AppiumDriver的各种findElement方法的尝试,尝试的目标应用是SDK自带的Notepad应用. 1. findElementByName 1.1 示例 el = driver.fin ...

  6. Appium基于安卓的各种FindElement的控件定位

    转自:http://www.2cto.com/kf/201410/340345.html 1. findElementByName 1.1 示例 ? 1 2 el = driver.findEleme ...

  7. appium 控件定位

    转自:http://www.2cto.com/kf/201410/340345.html AppiumDriver的各种findElement方法的尝试,尝试的目标应用是SDK自带的Notepad应用 ...

  8. 转载:Robotium之Android控件定位实践和建议(Appium/UIAutomator姊妹篇)

    来源于:http://blog.csdn.net/zhubaitian/article/details/39803857 1. 背景 为保持这个系列的一致性,我们继续用SDK自带的NotePad实例应 ...

  9. Robotium之Android控件定位实践和建议(Appium/UIAutomator姊妹篇)

    本人之前以前撰文描写叙述Appium和UIAutomator框架是怎样定位Android界面上的控件的. UIAutomator定位Android控件的方法实践和建议 Appium基于安卓的各种Fin ...

随机推荐

  1. 进阶 Linux基本命令-1

    vmware三种网络模式1,桥接虚拟机直接连接外网,局域网.宿主机电脑不提供路由. 2,NAT网络地址转换,家庭网 3,host only 只能和宿主电脑打交道 Linux命令形式 命令 +[参数]+ ...

  2. [Abp vNext 入坑分享] - 4.JWT授权的接入

    一.感想 在写这一系列文章之前,本来以为写这个之前已经搭建好的框架描述会比较简单,但是慢慢写下来才发现.写这个真的不简单额,本来以为图文一起,一个晚上应该能输出一篇吧...结果:现实真的骨感,一个星期 ...

  3. php正则验证手机、邮箱

    //验证电话private function reg_phone($phone){        if (preg_match("/^13[0-9]{1}[0-9]{8}$|15[0189] ...

  4. [函数] PHP取二进制文件头快速判断文件类型

    一般我们都是按照文件扩展名来判断文件类型,但其实不太靠谱,因为可以通过修改扩展名来伪装文件类型.其实我们可以通过读取文件信息来识别,比如 PHP扩展中提供了类似 exif_imagetype 这样的函 ...

  5. MAC地址欺骗(原理及实验)

    MAC地址欺骗 MAC地址欺骗(或MAC地址盗用)通常用于突破基于MAC地址的局域网访问控制,例如在交换机上限定只转发源MAC地址修改为某个存在于访问列表中的MAC地址即可突破该访问限制,而且这种修改 ...

  6. 走 进 java 的 四 个 基 本 特 性

    赶上明天就还是五一c小长假了,准备在这几天写几篇原创文章,供大家一起学习. 首先今天就来好好地唠一唠,到底java的那几个特性都是什么呢?到底怎么用呢?相信一定有一些小白对此会有些懊恼,没关系的,谁还 ...

  7. 【集群实战】共享存储实时备份(解决nfs共享存储的单点问题)

    1. nfs存储的单点问题 如果nfs服务器宕机了,则所有的nfs客户机都会受到影响.一旦宕机,会丢失部分用户的数据.为了解决单点问题,需要实现共享存储的实时备份,即:将nfs服务端共享目录下的数据实 ...

  8. Vue Cli 报错:You are using the runtime-only build of Vue where the template compiler is not availabl

    报错原因: 这里引用的是vue.runtime.esm.js,造成的不能正常运行. vue-cli 2.x 解决方法: 在webpack.base.conf.js配置文件中多加了一段代码,将 vue/ ...

  9. Facebook发布神经蛋分离法,可从嘈杂环境中提取音视频

    分离混合分布是机器学习和信号处理的长期挑战,而Facebook近日提出的新方法似乎可以有效解决这一难题. 人类天生善于分离个别声音和视觉效果,例如在拥挤的鸡尾酒会上听到别人的声音,或者在动物穿过灌木丛 ...

  10. Vue项目中设置每个单页面的标题

    两种实现方法,第一种方法引入插件,第二种为编程方式实现(推荐) 首先在路由文件index.js中给每个单页面路由添加title routes: [{     path: '/',     name: ...