xpath 的定位方法, 非常强大。  使用这种方法几乎可以定位到页面上的任意元素。

阅读目录

什么是xpath

xpath 是XML Path的简称, 由于HTML文档本身就是一个标准的XML页面,所以我们可以使用Xpath 的用法来定位页面元素。

xpath定位的缺点

xpath 这种定位方式, webdriver会将整个页面的所有元素进行扫描以定位我们所需要的元素, 这是个非常费时的操作,  如果脚本中大量使用xpath做元素定位的话, 脚本的执行速度可能会稍慢

testXpath.html 代码如下

<html>
<head><title>Test Xpath</title></head>
<body><div id="div1"><input name="div1input"></input><a href="http://www.sogou.com">搜狗搜索</a><img alt="div1-img1" src="http://www.sogou.com/images/logo/new/sogou.png" href="http://www.sogou.com">搜狗图片</img><input type="button" value="查询"></input></div><br /><div name="div2"><input name="div2iniput" /></input><a href="http://www.baidu.com">百度搜索</a><img alt="div2-img2" src="http://www.baidu.comn/img/bdlogo.png" href="http:/www.baidu.com">百度图片</img></div>
</body>
</html>

绝对路径定位方式

在被测试网页中, 查找第一个div标签中的按钮

XPath的表达式

/html/body/div/input[@value="查询"]
WebElement button = driver.findElement(By.xpath("/html/body/div/input[@value='查询']"));

使用浏览器调试工具,可以直接获取xpath语句

绝对路径的缺点

1. 一旦页面结构发生改变,改路径也随之失效,必须重新。 所以不推荐使用绝对路径的写法

绝对路径和相对路径的区别

绝对路径  以 "/"  开头, 让xpath 从文档的根节点开始解析

相对路径  以"//" 开头, 让xpath 从文档的任何元素节点开始解析

相对路径定位方式

在被测试网页中,查找第一个div标签中的按钮

XPath的表达式

//input[@value="查询"]
WebElement button = driver.findElement(By.xpath("//input[@value='查询']"));

使用索引号定位

在被测试网页中, 查找第二个div标签中的"查询"按钮

//input[2]
WebElement button = driver.findElement(By.xpath("//input[2]"));

使用页面属性定位

定位被测试页面中的第一个图片元素

//img[@alt='div1-img1']
WebElement button = driver.findElement(By.xpath("//img[@alt='div1-img1']"));
 

模糊定位starts-with关键字

查找图片alt属性开始位置包含'div1'关键字的元素

//img[starts-with(@alt,'div')]

模糊定位contains关键字

查找图片alt属性包含'g1'关键字的元素

//img[contains(@alt,'g1')]

text() 函数 文本定位

查找所有文本为"百度搜索" 的元素
driver.findElement(By.xpath("//*[text()='百度搜索']"));

查找所有文本为“搜索” 的超链接 
driver.findElement(By.xpath("//a[contains(text(),'搜索')]"));

转载于:https://www.cnblogs.com/TankXiao/p/5253072.html

java selenium (六) XPath 定位相关推荐

  1. java xpath 函数_java selenium (六) XPath 定位

    xpath 的定位方法, 非常强大.  使用这种方法几乎可以定位到页面上的任意元素. 阅读目录 什么是xpath xpath 是XML Path的简称, 由于HTML文档本身就是一个标准的XML页面, ...

  2. web自动化测试之Selenium基础 — XPath定位大全

    1.什么是 XPath? XPath (XML Path Language) 是一门在 XML 文档中查找信息的语言.XPath 用于在 XML 文档中通过元素和属性进行导航. XPath 包含一个标 ...

  3. 用XPath精确定位节点元素selenium使用Xpath定位之完整篇

    用XPath精确定位节点元素&selenium使用Xpath定位之完整篇 用XPath精确定位节点元素&selenium使用Xpath定位之完整篇 在利用XSL进行转换的过程中,匹配的 ...

  4. XPath入门 Selenium使用Xpath定位

    XPath入门 Selenium使用Xpath定位 什么是Xpath 什么是XML XML 与 HTML 的主要差异 如何来获取想要的Xpath路径 谷歌浏览器为例 掌握基本语法,以下列的HTML为例 ...

  5. java selenium一一操作定位元素

    java selenium操作定位元素 1.元素选择策略 1.1.使用选择器的提示 2.定位元素 3.定位多个元素 4.相对定位 4.1.above() 1.元素选择策略 WebDriver 中有 8 ...

  6. Selenium之XPATH定位(第二篇)

    世界上最远的距离大概就是明明看到一个页面元素站在那里,但是我却定位不到!! selenium定位元素的方法有很多种,像是通过id.name.class_name.tag_name.link_text等 ...

  7. 二:unittest框架配合selenium之xpath定位

    刚开始学习selenium自动化测试时,犯了一个不该犯的错误,偷懒,使用火狐浏览器中的扩展FIREBUG,FIREPATH来辅助定位. 虽然用的定位方法大多数是使用XPATH方法,但是是工具定位出来的 ...

  8. selenium之xpath定位详解

    xpath定位 xpath概述: 1.xpath即为xml path的简称,它是一种用来确定XML文档中某部分位置的语言. 2.HTML可以看做是XML的一种实现,所以selenium用户可以使用这种 ...

  9. selenium之xpath定位

    1.绝对路径定位 /html/body/div[1]/div/div/div/div[2]/div/div/button 注:这种方法,一旦路径有变化会导致定位失败,所以不推荐使用绝对路径方式. 2. ...

最新文章

  1. navicat 导入csv未响应_使用navicat将csv文件导入mysql
  2. python简单爬虫手机号_python手机号前7位归属地爬虫代码实例
  3. windows无法新建计算机对象,win10系统ie浏览器提示“Automation 服务器不能创建对象”的办法...
  4. Chrome 双击关闭标签,新窗口打开新地址,一个插件搞定,安装方便,自带hosts
  5. gtk+blade+anjuta 的简单实例
  6. PGM:部分观测数据
  7. JAVA----数组(一)
  8. 小客车年检(年审)相关的技术参数一览
  9. Pos58打印程序开发相关
  10. java migration_JetPack知识点实战系列九:Room数据库Migration
  11. 一年级上册知识点——语文(人教版)
  12. Unity 生命周期 Reset() 的使用
  13. return false和return true
  14. letter-shell | 一个功能强大的嵌入式shell
  15. HDU 5984 Pocky (概率+简单微分方程)
  16. 初学怕python画图工具pen以及初学个人感悟
  17. 安卓系统的电视机_换机顶盒比换电视机划算,海美迪4K播放器H7 Plus体验
  18. 中国电信增值业务是什么?一类和二类的区别是什么?
  19. U盘linux ext怎么查看,Linux加载Ext2/Ext3文件系统作的U盘
  20. 大龙管理系统2.0出炉

热门文章

  1. propertychange input change
  2. 从性能方面谈系统设计
  3. Asp中一些FSO方面的函数
  4. 优化问题中的两个挑战是?
  5. we need to have frequent contact for relationships for transferring from aca to career
  6. partial in latex
  7. U3D游戏运行时资源是如何从AB中加载出来的
  8. 在eclipse及myEclipse下安装插件之方法
  9. 小米大数据:借助Apache Kylin打造高效、易用的一站式OLAP解决方案
  10. 条件队列大法好:wait和notify的基本语义