xpath的使用基本语法:
1.// 从根节点开始,查找对象是全文。
2./ 从当前标签的路径开始查找
3.text()获取当前路径下的文本
4.@+类名或者id名 查找类名或者id的名字
5. .一个点表示当前节点
(1)获取某个标签的内容
(2)根据标签属性来查找指定的标签,获取指定标签的属性
(3)找指定的文本内容
(4)获取指定id名字的标签的文本
(5)获取指定类名的文本
(6)contains包含指定属性
内容来自于:https://blog.csdn.net/qq_39138295/article/details/81257382
第一种方法:通过绝对路径做定位(相信大家不会使用这种方式)
By.xpath("html/body/div/form/input")
By.xpath("//input")
第三种方法:通过元素索引定位
By.xpath("//input[4]")
第四种方法:使用xpath属性定位(结合第2、第3中方法可以使用)
By.xpath("//input[@id='kw1']")
By.xpath("//input[@type='name' and @name='kw1']")
第五种方法:使用部分属性值匹配(最强大的方法)
By.xpath("//input[start-with(@id,'nice')
By.xpath("//input[ends-with(@id,'很漂亮')
By.xpath("//input[contains(@id,'那么美')]")
使用Xpath轴方式可依据在文档数中的元素的相对位置来进行定位,先找到一个相对好定位的元素,在根据与它相对位置来定位其他元素,可以解决一些元素难以定位的问题。(亲属关系匹配)
如下HTML页面:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>在此处插入标题</title>
</head>
<body>
<div id="div1">
<input alt="div1-input1" id="iv1-input1" value="" /> <a
href="http://www.baidu.com">test</a> <img alt="div1-img1" src="">
<input type="button" id="div1-button1" name="div1-button" />
</div>
<div id="div2">
<input alt="div2-input2" id="div2-input2" value="" /> <a
href="http://www.sogou.com">test</a> <img alt="div2-img2" src="">
</div>
</body>
</html>
画出树状图如下所示: