一、写在前面

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

二、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. Bayer滤镜转换颜色方案

    Bayer滤镜如何转换颜色? Bayer模式是颜色模式,被广泛应用于CCD和CMOS摄像头.相机使用了拜耳滤镜,分别过滤得到红绿蓝三种颜色.既然要得到的是红绿蓝频段光线的强度,要通过的就是红绿蓝光,就 ...

  2. python小知识,字典

    知识融合在代码中 """ create:2020年12月20日 功能:字典的部分使用方法 """ #空字典 dic={} print(&qu ...

  3. parted(分区工具)

    要支持大容量(18EB),需改用  gpt 分区模式可以有128个主分区 [root@server0 /]# lsblk [root@server0 /]# parted /dev/vdb (part ...

  4. Centos 安装 Influxdb + Chronograf

    安装 Influxdb  1:下载安装包 官网下载地址 https://portal.influxdata.com/downloads/# wget https://dl.influxdata.com ...

  5. [Azure DevOps] 使用 Inno Setup 制作桌面软件安装包

    1. 桌面应用程序的 CI/CD 桌面应用程序的 CI/CD 过程和网站有一些不同,毕竟桌面应用程序的"部署"只是将安装包分发到目标位置,连应用商店都不用上,根据公司的管理流程可以 ...

  6. 从1+1=2来理解Java字节码从1+1=2来理解Java字节码

    编译"1+1"代码 首先我们需要写个简单的小程序,1+1的程序,学习就要从最简单的1+1开始,代码如下: 写好java类文件后,首先执行命令javac TestJava.java ...

  7. 【题解】poj 3162 Walking Race 树形dp

    题目描述 Walking RaceTime Limit: 10000MS Memory Limit: 131072KTotal Submissions: 4941 Accepted: 1252Case ...

  8. 『无为则无心』Python基础 — 7、Python的变量

    目录 1.变量的定义 2.Python变量说明 3.Python中定义变量 (1)定义语法 (2)标识符定义规则 (3)内置关键字 (4)标识符命名习惯 4.使用变量 1.变量的定义 程序中,数据都是 ...

  9. vue中$nextTick详细讲解保证你一看就明白

    1.功能描述 今天我们要实现这个一个小功能: 页面渲染完成后展示一个div元素: 当点击这个div元素后: div元素消失: 出现一个input元素:并且input元素聚焦 想必大家我觉得简单,我们一 ...

  10. 26、linux文件系统