Selenium 定位之Xpath定位:

1、绝对路径定位:以/开头从根节点一直找到当前节点,不推荐使用决定路径定位方式

2、相对路径定位:使用“//”表示相对路径定位,格式://标签名[ @属性= "属性值"]

  列如://area[@hidefocus="true"]

3、索引定位:即下标定位,格式:标签名[下标]

  列如://div[2]

4、属性值定位:格式://标签名[ @属性= "属性值"]

  列如://area[@id="account"]

  除了上述的id还有name、classshape、title、href 等属性

5、使用模糊函数定位:contains(),第一个入参是属性,第二个是第一个参数中的属性值包含的内容;格式://标签名[contains( @属性, "属性值")]

  列如://input[contains(@alog-action, 'earc')]

  这里的alog-actio属性的值是search,使用contains方法时会自动匹配包含earc的alog-action的input标签

6、轴定位:用::表示,选择当前节点的父节点(parent)、子节点(child)、祖先节点(ancestor)、子孙节点(descendant)、后节点(following)前节点(preceding)、后兄弟节点(following-sibling)、前兄弟节点(preceding-sibling)

  列如://input[@id='su']/parent::span

  如图:先找到id为su的input标签;再查找父类class为bg s_btn_wr的span标签

     另:如果::后面是*,则表示取所有符合条件的元素

7、文本text定位:通过html标签的文本定位的方法,格式://标签名[text( )= "text值"]
 
 
  列如://div[text()="百度热榜"]
  备注:部分标签没有text值;故不能使用此方法
 
END:
  xpath定位支持结合运算符定位:常用的有and和or,这里主要分享and和or的用法,其他请自行了解,我们还是以百度搜索输入框为列:

  如上图:使用and连接多个属性值  配合定位。

  如上图:使用or连接多个属性值  配合定位了两个标签;当然也可以定位一个标签,如://input[@id='kw' or @name='wd' ],这样写的话;就会定位出id等于kw或者name=wd的标签(如果是id和name的值等于两个标签的属性就会定位出两个标签,当然我这里是定位了一个标签)。。。

  
 
 
个人分享:
  1、xpath定位建议优先使用id、name,
  2、其次使用变动较小的属性值来作为定位方式,
  3、text值可以一眼看出来定位的标签是哪一个,
  4、模糊定位很可能定位多个或者随着前段改动受到匹配精度的影响,
  5、下标定位适合该标签没有可定位属性或者非常不好定位再使用,
  6、轴定位适合该标签其他方式都不容易定位的情况再使用。

Selenium WebDriver 定位之Xpath定位的更多相关文章

  1. Selenium webdriver 学习总结-元素定位

    Selenium webdriver 学习总结-元素定位 webdriver提供了丰富的API,有多种定位策略:id,name,css选择器,xpath等,其中css选择器定位元素效率相比xpath要 ...

  2. 在Selenium Webdriver中使用XPath Contains、Sibling函数定位

    前言 在一般情况下,我们通过简单的xpath即可定位到目标元素,但对于一些既没id又没name,而且其他属性都是动态的情况就很难通过简单的方式进行定位了. 在这种情况下,我们需要使用xpath1.0内 ...

  3. selenium webdriver(2)---页面对象定位

    webdriver的元素定位很灵活,提供了多种定位方式: Id LinkText PartialLinkText Name TagName Xpath ClassName CssSelector 这些 ...

  4. selenium+python自动化之xpath定位

    在上一篇简单的介绍了用工具查看目标元素的xpath地址,工具查看比较死板,不够灵活,有时候直接复制粘贴会定位不到.这个时候就需要自己手动的去写xpath了,这一篇详细讲解xpath的一些语法. 什么是 ...

  5. 常用的CSS定位,XPath定位和JPath定位

    CSS定位 举例 描述 div#menu id为menu的div元素 div.action-btn.ok-btn class为action-btn和ok-btn的div元素 table#emailLi ...

  6. Selenium Webdriver——Chrome调试Xpath

    自己通过手写的Xpath要验证是否正确定位到元素,可以通过谷歌浏览器的Console功能(F12) 在console 输入:$x("") 定位去哪儿网的出发输入框: <inp ...

  7. java selenium webdriver实战 页面元素定位

    自动化测试实施过程中,测试程序中常用的页面操作有三个步骤 1.定位网页上的页面元素,并存储到一个变量中 2.对变量中存储的页面元素进行操作,单击,下拉或者输入文字等 3.设定页面元素的操作值,比如,选 ...

  8. appium定位之xpath定位

    前面也说过appium也是以webdriver为基的,对于元素的定位也基本一致,只是增加一些更适合移动平台的独特方式,下面将着重介绍xpath方法,这应该是UI层元素定位最强大的方法啦! 以淘宝app ...

  9. 自动化定位——通过XPath定位元素

    XPath是一种XML文档中定位元素的语言.该定位方式也是比较常用的定位方式 1通过属性定位元素 find_element_by_xpath("//标签名[@属性='属性值']") ...

随机推荐

  1. cocosCreator微信小游戏排行榜思路

    cocosCreator制作微信小游戏排行榜实现方案: 游戏认知:项目分为主域和子域,主域就是游戏主程部分,子域为单独处理微信排行榜公共域数据的. 游戏主域里创建一个节点,添加WXSubContext ...

  2. CIBN手机电视8.3.2永久VIP

    一款互联网电视的手机客户端.可以观看最新的电影和电视剧,还会为你推荐人气热门电影,让你不会错过每一部精彩的大片,以去除app内的所有可见广告,解锁VIP特权,无需登录直接使用! 下载地址:https: ...

  3. curl使用技巧汇总

    1,curl 忽略证书安全验证 curl https://192.168.1.5:8443-insecure -I

  4. IOS实现自动定位和手动选择城市功能

    IOS自动定位使用的是高德地图SDK 在高德开放平台http://lbs.amap.com/api/ios-sdk/down/ 下载2D地图SDK和搜索SDK 将SDK导入工程内 按照高德的配置说明进 ...

  5. 从面试角度分析LinkedList源码

    注:本系列文章中用到的jdk版本均为java8 LinkedList类图如下: LinkedList底层是由双向链表实现的.链表好比火车,每节车厢包含了车厢和连接下一节车厢的连接点.而双向链表的每个节 ...

  6. [日常摸鱼]bzoj2823 [AHOI2012]信号塔

    题意:$n$个点,求最小圆覆盖,$n \leq 5e5$ 这题数据是随机的hhh 我们可以先求出凸包然后对凸包上的点求最小圆覆盖-(不过直接求应该也行?) 反正随便写好像都能过- #include&l ...

  7. Spring Boot 使用常见问题

    Json格式化时间,时区设置 spring.jackson.time-zone=GMT+8 spring.jackson.date-format=yyyy-MM-dd HH:mm:ss json数据无 ...

  8. git使用上

    因为最近工作上多处都用到了基于 Git 的开发,需要深入理解 Git 的工作原理,以往的 Git 基本知识已经满足不了需求了,因此写下这篇 Git 进阶的文章,主要是介绍了一些大家平时会碰到但是很少去 ...

  9. FPT: Feature Pyramid Transfomer

    导言: 本文介绍了一个在空间和尺度上全活跃特征交互(fully active feature interaction across both space and scales)的特征金字塔transf ...

  10. TurtleBot3 Waffle (tx2版华夫)(8)键盘控制

    1)[Remote PC] 启动roscore $ roscore 2)[Turbot3] 启动turbot3 $ roslaunch turbot3_bringup minimal.launch 3 ...