码迷,mamicode.com
首页 > 其他好文 > 详细

Selenium——XPath 定位

时间:2016-08-02 10:00:00      阅读:673      评论:0      收藏:0      [点我收藏+]

标签:

 

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

 

1.绝对路径定位方式

XPath 的绝对路径主要用标签名的层级关系来定位元素的绝对路径。最外层为html 语言,body 文本内,一级一级往下查找,如果一个层级下有多个相同的标签名,那么就按上下顺序确定是第几个

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

XPath的表达式

/html/body/div/input[@value="查询"]

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

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

 

2.相对路径定位

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

XPath的表达式

//input[@value="查询"],//表示当前页面某个目录下,input 表示定位元素的标签名

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

 

如果不想指定标签名也可以用星号(*)代替

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

 

使用XPath 不仅仅只局限在id、name 和class 这三个属性值,元素的任意属性值都可以使用,只要它能唯一的标识一个元素。

 

3.层级与属性结合

 

Selenium——XPath 定位

标签:

原文地址:http://www.cnblogs.com/hjhsysu/p/5728125.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!