欢迎访问昆山宝鼎软件有限公司网站! 设为首页 | 网站地图 | XML | RSS订阅 | 宝鼎邮箱 | 宝鼎售后问题提交 | 后台管理


新闻资讯

MENU

软件开发知识

Java Selenium 昆山软件开发 (六) XPath 定位

点击: 次  来源:宝鼎软件 时间:2017-07-07

原文出处: 小坦克

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语句

Java Selenium 昆山软件开拓  (六) 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(),'搜索')]"));

附: selenium java教程 (连载中, 敬请等候)

java selenium (一) selenium 先容

java selenium (二) 情况搭建要领一

java selenium (三) 情况搭建 基于Maven

java selenium (四) 利用欣赏器调试东西

java selenium (五) 元素定位大全

java selenium (六) xpath 定位

java selenium (七) CSS 定位

java selenium (八) Selenium IDE 用法

java selenium (九) 常见web UI 元素操纵 及API利用

java selenium (十) 操纵欣赏器

java selenium (十一) 操纵弹出对话框

java selenium (十二) 操纵弹出窗口

java selenium (十三) 智能期待页面加载完成

java selenium (十四) 处理惩罚Iframe 中的元素