一、写在前面

之前写过一些关于元素定位的文章,但是感觉都是很碎片,现在想做个整合,便有了这篇文章。

二、xpath的定位方法

关于xpath定位方法,网上写的已经很成熟了,现已百度首页为例,如下图:

再结合我之前所写整理如下。

1、通过绝对路径方式定位

/html/body/div[1]/div[2]/div[5]/div[1]/div/form/span[1]/input

2、通过相对路径方式定位

//input

3、通过元素索引定位

//input[4]

4、通过属性定位

使用xpath属性定位(结合第2、第3中方法可以使用)

//input[@id='kw']
//input[@type='name' and @name='kw']

5、通过部分属性值匹配

//input[starts-with(@id,'k')]
//input[ends-with(@id,'w')]
xpath中的ends-with无效,原因如下:
ends-with是xpath2.0的语法,可能你的浏览器还只支持1.0的语法
//input[contains(@id,'w')]

6、通过文本定位

//a[text()='直播']

三、关于xpath函数使用举例说明

1、contains():

//div[contains(@id,'in')] ,表示选择id中包含有’in’的div节点

2、text()

//a[text()='baidu'] ,用text()函数来匹配节点

3、last()

book[last()] ,取xpath最后一个book元素
book[last()-1] ,取xpath最后第二个book元素

4、starts-with()

//div[starts-with(@id,'in')] ,表示选择以’in’开头的id属性的div节点

5、not()

not()函数,表示否定

//input[@name=‘identity’ and not(contains(@class,‘a’))] ,表示匹配出name为identity并且class的值中不包含a的input节点。

特别注意

not()函数通常与返回值为true or false的函数组合起来用contains(),starts-with()等,但有一种特别情况请注意一下。

我们要匹配出input节点含有id属性的,写法如下://input[@id],如果我们要匹配出input节点不含用id属性的,则为://input[not(@id)]

关于Xpath定位方法知道这些基本够用的更多相关文章

  1. 元素定位-XPATH定位方法总结

    1.Xpath定位方法探讨 xpath是比较常用的一种定位元素的方式,因为它很方便,缺点是,消耗系统性能.如果Xpath使用的比较好,几乎可以定位到任何页面元素,而且受页面变化影响较小. 1.1.什么 ...

  2. 【转载】Xpath定位方法深入探讨及元素定位失败常见情况

    一.Xpath定位方法深入探讨 (1)常用的Xpath定位方法及其特点 使用绝对路径定位元素. 例如: driver.findElement(By.xpath("/html/body/div ...

  3. Xpath定位方法深入探讨及元素定位失败常见情况

    一.Xpath定位方法深入探讨 (1)常用的Xpath定位方法及其特点 使用绝对路径定位元素. 例如: driver.findElement(By.xpath("/html/body/div ...

  4. xpath定位方法详解

    1.xpath较复杂的定位方法: 现在要引用id为“J_password”的input元素,可以像下面这样写: WebElement password = driver.findElement(By. ...

  5. xpath定位方法小结(转载)

    1.实例化一个浏览器WebDriver driver = new FirefoxDriver(); 2.driver.get() get传参数到浏览器中 3.常用定位方法webelement XX=d ...

  6. selenium+Java,xpath定位方法详解(搬运留存)

    用xpath绝对路径比较费事费力,还容易报错,下面几种模糊定位比较灵活好用 driver.findElement(By.xpath("//*[@id='J_login_form']/dl/d ...

  7. Selenium之XPATH定位方法

    转自 https://www.cnblogs.com/hanmk/p/8997786.html https://www.cnblogs.com/hanmk/p/9015502.html 感谢原作者 1 ...

  8. 5 Python+Selenium的元素定位方法(xpath)

    [环境] Python3.6+selenium3.0.2+FireFox50+win7 [定位方法] 1.方法:find_element_by_xpath('') 说明:xpath定位方法有相对路径和 ...

  9. selenium python (二) 元素定位方法

    定位的原则就是:id name class 优先,强烈建议和前端哥哥搞好关系.定位就不是问题:实在不行就xpath和css大部分偶可以定位到. webdriver定位的方法是通过一个By类,By类中有 ...

随机推荐

  1. Velodyne VLP-16激光雷达数据分析

    Velodyne VLP-16激光雷达数据分析 Velodyne VLP-16激光雷达保持了 Velodyne 在 LiDAR 中的突破性重要功能:实时收发数据.360 度全覆盖.3D 距离测量以及校 ...

  2. KITTI数据集上MaskRCNN检测效果示例

    KITTI数据集上MaskRCNN检测效果示例 在Semantic Instance Segmentation Evaluation中,MaskRCNN性能效果排名第一. Test Image 0 I ...

  3. Django(58)viewsets视图集详解

    前言 ViewSet 只是一种基于类的视图,它不提供任何方法处理程序(如 .get()或.post()),而是提供诸如.list()和 .create() 之类的操作. ViewSet 的方法处理程序 ...

  4. JMeter使用教程2——MySQL压测

    之前写过一篇JMeter使用教程,只是介绍了http请求的压力测试,想到MySQL的测试也挺必要的,于是写下这篇记录一下.如果不知道怎么下载和安装,可以看一下上一篇关于JMeter的文章,地址是:ht ...

  5. Python集合:set

    集合 集合的描述 set是一个无序不重复的序列,可以用{}或者 set() 函数创建集合,它存放不可变类型(如字符串.数字.元组)数据. 注意:创建一个空集合必须使用set()方法,因为{}是用来生成 ...

  6. 『动善时』JMeter基础 — 45、脚本录制工具Badboy介绍

    目录 1.Badboy软件介绍 2.Badboy下载 3.Badboy安装 4.Badboy界面介绍 (1)菜单栏: (2)工具栏: (3)左下角界面视图: 1.Badboy软件介绍 Badboy是一 ...

  7. klayout安装及使用教程

    klayout 版本:klayout-0.26.9 我的系统环境:Deepin20(可以视为Debian) 修改过的代码地址:https://github.com/stuartofmine/klayo ...

  8. 5.22考试总结(NOIP模拟1)

    5.22考试总结(NOIP模拟1) 改题记录 T1 序列 题解 暴力思路很好想,分数也很好想\(QAQ\) (反正我只拿了5pts) 正解的话: 先用欧拉筛把1-n的素数筛出来 void get_Pr ...

  9. 【题解】数颜色 STL vector数组

    小 C 的兔子不是雪白的,而是五彩缤纷的. 题目 题目描述 小 C 的兔子不是雪白的,而是五彩缤纷的.每只兔子都有一种颜色,不同的兔子可能有 相同的颜色.小 C 把她标号从 1 到 n 的 n只兔子排 ...

  10. 【题解】hdu2044一只小蜜蜂

    斐波拉契数列的应用 题目 有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行.请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数.其中,蜂房的结构如下所示. Input输入数据的第一行是一个整数N,表 ...