Xpath非常强大,使用Xpath可以代替前六种基本的定位方式,这种定位方式几乎可以定位到页面上的任何元素。

Xpath简介

Xpath就是xml path,是一种在xml中查找信息的语言,因为html文档就是一个标准的xml,所以可以用Xpath来定位页面元素。

通过绝对路径进行定位

WebElement i = driver.findElement(By.xpath("/html/body/div/input"));
//绝对路径以 "/" 开头,让Xpath从文档的根节点开始解析
//通过绝对路径进行定位一旦页面结构发生变化,路径也就随之失效必须重写,所以尽量的不适用绝对路径进行定位

通过相对路径进行定位

WebElement i = driver.findElement(By.xpath("//input"));
//查找第一个input
//相对路径以 "//"开头,让Xpath从文档的任何元素节点开始解析

通过标签属性进行定位

WebElement i = driver.findElement(By.xpath("//input[@type='submit']"));
//查找input属性type值为submit的页面元素
//通过标签属性定位的格式为 //标签[@属性='属性值']

通过索引位置进行定位

WebElement i = driver.findElement(By.xpath("/html/body/div[3]"));
//查找body下的第三个div

文本定位text()

WebElement i = driver.findElement(By.xpath("//a[text()='新闻']"));
//查找文本内容为“新闻”的a标签

模糊匹配contains

WebElement i = driver.findElement(By.xpath("//input[contains(@type,'te')]"));
//查找属性type值包含te的input




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

  1. selenium元素定位方式xpath总结

    一.绝对路径(不要使用,除非已经使用了所有方式仍然无法定位)方法:根据实际目录,逐层输写.例子: find_element_by_xpath("/html/body/div[2]/form/ ...

  2. python+selenium元素定位之XPath学习02

    XPath 语法 XPath 使用路径表达式来选取 XML 文档中的节点或节点集.节点是通过沿着路径 (path) 或者步 (steps) 来选取的. XML 实例文档 我们将在下面的例子中使用这个 ...

  3. python+selenium元素定位之XPath学习01

    参考文档1:https://www.w3school.com.cn/xpath/xpath_syntax.asp 参考文档2:https://www.runoob.com/xpath/xpath-tu ...

  4. 自动化测试基础篇--Selenium元素定位

    摘自https://www.cnblogs.com/sanzangTst/p/7457111.html 一.Selenium元素定位的重要性: Web自动化测试的操作:获取UI页面的元素,对元素进行操 ...

  5. Selenium3 + Python3自动化测试系列二——selenium元素定位

    一.selenium元素定位 Selenium对网页的控制是基于各种前端元素的,在使用过程中,对于元素的定位是基础,只有准去抓取到对应元素 才能进行后续的自动化控制,我在这里将对selenium8种元 ...

  6. selenium元素定位之css选择器

    在selenium元素定位时会用到css选择器选取元素,虽说xpath在定位元素时能解决大部分问题,但使用css选择器选取元素也是一种不错的选择. css相较与xpath选择元素优点如下: 表达式更加 ...

  7. selenium元素定位陷阱规避

    为什么selenium可以在各个浏览器上运行?因为selenium在与各个浏览器驱动执行前,会先把脚本转化成webdriver, webdriver wire协议(一种json格式的协议),这样就与脚 ...

  8. Selenium2学习-002-Selenium2 Web 元素定位及 XPath 编写演示示例

    此文主要对 Selenium2 的 Web 元素定位及 XPath 编写示例,敬请各位亲们参阅,共同探讨.若有不足之处,敬请各位大神指正,不胜感激! 通过 Firefox(火狐)浏览器的插件 Fire ...

  9. Java + selenium 元素定位(5)之By Xpath

    这篇关于Xpath方法的文章和之前那篇CSS的方法一样,使用前,需要先掌握一些Xpath的相关知识.当然,网上也有各种工具可以帮助我们获取到元素的Xpath,但是这并不代表着我们就可以不用了解Xpat ...

随机推荐

  1. Activity工作过程

    Activity工作过程: Activity.startActivity--> Activity.startActivityForResult--> Instrumentation.exe ...

  2. Luogu P1596 [USACO10OCT]湖计数Lake Counting

    题目描述 Due to recent rains, water has pooled in various places in Farmer John's field, which is repres ...

  3. 在JDBC中使用Java8的日期LocalDate、LocalDateTime

    在实体Entity里面,可以使用java.sql.Date.java.sql.Timestamp.java.util.Date来映射到数据库的date.timestamp.datetime等字段 但是 ...

  4. 阿里云服务器部署笔记一(python3、Flask、uWSGI、Nginx)

    一.重置密码,并重启服务器 二.安全组配置>配置规则>添加安全组规则(为了能在本地ssh到实例) 配置如下: 此配置为允许任意公网IP登陆实例,注意windows与Linux系统端口范围不 ...

  5. mysql数据库 索引 事务和事务回滚

    mysql索引 索引相当于书的目录优点:加快数据的查询速度缺点:占物理存储空间,添加,删除,会减慢写的速度 查看表使用的索引 mysql> show index from 表名\G;(\G分行显 ...

  6. Django2.0文档

    第四章 模板 1.标签 (1)if/else {% if %} 标签检查(evaluate)一个变量,如果这个变量为真(即,变量存在,非空,不是布尔值假),系统会显示在 {% if %} 和 {% e ...

  7. 用Dw CS6运行静态页面出问题

    1.报错截图一 2.报错截图二

  8. R语言︱集合运算——小而美法则

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 集合运算的一般规则如下:    union(x ...

  9. 错误代码: 1242 Subquery returns more than 1 row

    1. 错误描述 1 queries executed, 0 success, 1 errors, 0 warnings 查询:SELECT t.id, DATE_FORMAT( t.statisTim ...

  10. MyEclipse提示

    MyEclipse提示 1.具体如下图 2.提示原因 3.解决办法