常用方法
1.text()
以百度首页右上角“新闻”定位举例,如下图

20170328173126462.png
2.contains()
JD首页左侧电脑菜单举例

image.png

image.png
这里href = //diannao.jd.com, 如果我觉得这个href太长,我只取关键字diannao,利用contains()方法来定位就方便多了,推荐电脑这个元素的XPath://*/a[contains(@href,'diannao')]
-
相对XPath路径写法
有时候,我们遇到目标元素节点的信息很少,不足够用来精确定位到目标元素,这个时候,我们就需要考虑,利用目标元素上下附件节点,通过确定附件的节点从而确定目标元素,这种方式就叫相对路径。
这里用百度新闻首页的一个单选按钮来举例
image.png
火狐浏览器上firepath给出的推荐表达式是:
image.png
这里推荐的XPath是根据目标元素节点中id信息来定位的,这个通过id就能定位,当然好。有时候,如果这个id不能作为参考值,我们需要利用相对定位方法来定位这个新闻标题前面的单选按钮;
1)先根据for = newstitle 或者text()=新闻标题来定位“新闻标题”这个标签。
2)根据相对定位来确定“新闻标题”前面的这个radio按钮。
3)XPath的写是:
.//*/label[@for='newstitle']/../input[@id='newstitle']
由于,当前这个举例不是很符合只能采用相对定位才能确定元素的场景,感觉这个表达式定位,在这里反而更复杂化,但是,相对定位元素方法是一样的,和上面举例的步骤、思维方式是一致的。如果发生了,无法通过目标元素节点信息来定位,那么,就要考虑是否采用相对路径来解决这个问题。元素定位,理论上是没有定位不到的元素,通过以上方法,基本上能定位项目中大部分元素。
4.取最后一个元素
取xpath最后一个book元素
book[last()]
取xpath最后第二个book元素
book[last()-1]
5.取第一个元素

