一、xpath的使用场景:

  自动化测试中经常对元素进行操作时,如果存在id、name、content_desc时,可通过appium框架提供的方法find_element_by_id/name/tag_name来直接进行操作,经常会遇到以上属性都不存在的情况,因此这时我们就开始使用xpath的操作来进行使用,对常用的方法进行梳理,如下:

二、xpath的基本用法

  

三、示例介绍

1、要求达到的目的:

    打开短信---点击设置---通过xpath的方式,实现点击“设置”

2、实现的步骤:

    1)通过uiautomator Viewer解析出来的结构为:

            

       2)xpath的实现:

     第一种方法:self.device.find_element_by_xpath('//android.widget.ListView/android.widget.LinearLayout[4]').click()

     解析:(1)xpath中,下标从1开始,不从0开始,因此“设置”的下标为4

        (2)仔细的话可以注意到android.widget.ListView为整个弹框的class,详见下图,根据图中示例,可以推断出,设置:find_element_by_xpath('//android.widget.ListView/android.widget.LinearLayout[4]'),我的收藏:find_element_by_xpath('//android.widget.ListView/android.widget.LinearLayout[1]').

          

      第二种方法:self.device.find_element_by_xpath("//android.widget.TextView[@text = '设置']").click()

          解析:通过text来进行点击设置

      第三种方法:self.device.find_element_by_xpath("//android.widget.ListView/android.widget.LinearLayout[last()]").click()

          解析:根据上面的截图就可以看出,设置属于ListView中的最后一个,因此可以通过last直接点击,如果是点击倒数第二个,则使用[last()-1]即可

 xpath需要遍历整个元素树,生成一个xml数据,然后在做xpath查找,遍历和在xml中进行xpath都相当的耗时,因此在写自动化脚本时,尽量避免用xpath,后面遇到了其他的用法在来继续添加......

appium--xpath定位元素用法的更多相关文章

  1. appium -- Xpath定位元素

    如文章<Appium基于安卓的各种FindElement的控件定位方法实践>所述,Appium拥有众多获取控件的方法.其中一种就是根据控件所在页面的XPATH来定位控件. 本文就是尝试通过 ...

  2. 【appium】根据xpath定位元素

    1. 背景 本文尝试使用的试验对象是SDK自带的NotePad应用实例,假设已经有两个Notes分别是“note1”和“note2”添加到Notepad上面,我们要做的就是尝试用xpath的方法来定位 ...

  3. 『心善渊』Selenium3.0基础 — 6、Selenium中使用XPath定位元素

    目录 1.Selenium中使用XPath查找元素 (1)XPath通过id,name,class属性定位 (2)XPath通过标签中的其他属性定位 (3)XPath层级定位 (4)XPath索引定位 ...

  4. Selenium-Python学习——通过XPath定位元素

    用Xpath定位元素的方法总是记不住,经常要翻出各种文档链接参考,干脆把需要用到的内容整到这个笔记中方便查找. Xpath是在XML文档中定位节点的语言.使用 XPath 的主要原因之一是当想要查找的 ...

  5. Robot Framework与Web界面自动化测试学习笔记:利用xpath定位元素

    在rf中,利用selinum2的关键字进行用例编写时,很多关键字的参数是html元素的定位标识. 最简单的方式,是通过id 或name来描述元素定位信息,如 click  button    id=l ...

  6. 初探UiAutomator2.0中使用Xpath定位元素

    J 今天的主题是讲一下在使用过程中遇到的一个问题,如何在UiAutomator2.0中使用Xpath定位元素? 背景 现在的app在打包成apk的时候都是有加固处理的,各种混淆加固,所以已经破坏了或扰 ...

  7. Python selenium PO By.XPATH定位元素报错

    Python selenium PO  By.XPATH定位元素报错 如下代码经常报错: # 首页的“新建投放计划”按钮 new_ads_plan = (By.XPATH, "//*[tex ...

  8. Xpath定位元素-一个例子

    前几天在群里面解决的问题,记录下来和大家分享 需要定位这个股份制企业 方法: # 首先需要单击下拉框弹出企业性质的下拉选项:然后用过Xpath定位元素 driver.find.element_by_c ...

  9. selenium中的xpath用法,使用xpath定位元素

    xpath路径选择器定位元素 1. xpath: 使用路径表达式来定位xml或者html中文档中选取节点.在 XPath 中,有七种类型的节点:元素.属性.文本.命名空间.处理指令.注释以及文档节点( ...

  10. Appium Android定位元素与操作

    文章写得很好,转载备用 一.常用识别元素的工具 uiautomator:Android SDK自带的一个工具,在tools目录下 monitor:Android SDK自带的一个工具,在tools目录 ...

随机推荐

  1. HashMap 实现原理

    深入Java集合学习系列:HashMap的实现原理   参考文献 引用文献:深入Java集合学习系列:HashMap的实现原理,大部分参考这篇博客,只对其中进行稍微修改 自己曾经写过的:Hashmap ...

  2. linux安装VLAN,系统怎么划分VLAN打标签上交换机

    前几天公司一台物理机需要连接公网,但是公网需要网卡打标签上去. 由于没有做过linux主机划分VLAN的操作,因此去查了一下,需要利用vconfig这个命令. 但是纠结的是,系统源中没有这个包.(很坑 ...

  3. flash 视频 死机(转贴)

    http://zhidao.baidu.com/question/120464366 打开有关flash的网站就定屏死机 打开flash的网站经常定屏死机,打开酷狗,看土豆网遇到旁边那些广告也一样死机 ...

  4. html标签分类

    在这里做个存档吧,区分一下常用的html标签,行内元素.块状元素.行内块状元素! 那个h标签下面的三横是<hr>标签. 顺便给个附加的css,你们仔细体会一下 body *{border: ...

  5. meta 标签知识汇总

    概要 标签提供关于HTML文档的元数据.元数据不会显示在页面上,但是对于机器是可读的.它可用于浏览器(如何显示内容或重新加载页面),搜索引擎(关键词),或其他 web 服务. -- W3School ...

  6. REBEL IDEA热部署插件使用

    启动 一.在IDEA 的Plugins中搜索Jrebel for intellij 插件 二.https://my.jrebel.com/account/how-to-activate 注册或者使用f ...

  7. 佛祖镇楼,BUG避易

    def FZZL(): print(" _ooOoo_ ") print(" o8888888o ") print(" 88 . 88 ") ...

  8. Hadoop 3.x 新特性剖析系列2

    1.概述 接着上一篇博客的内容,继续介绍Hadoop3的其他新特性.其内容包含:优化Hadoop Shell脚本.重构Hadoop Client Jar包.支持等待Container.MapReduc ...

  9. JS的事件绑定、事件流模型

    .t1 { background-color: #ff8080; width: 1100px; height: 40px } 一.JS事件 (一)JS事件分类 1.鼠标事件:click/dbclick ...

  10. JS的进阶技巧

    前言 你真的了解JS吗,看完全篇,你可能对人生产生疑问. typeof typeof运算符,把类型信息当做字符串返回. //正则表达式 是个什么 ? typeof /s/ // object //nu ...