我正在尝试创建一个指向按钮的href
属性的XPath(处理分页)。
我的XPath如下:
//a[contains(@class, 'h-data-pagination__next')]//@href
返回以下网址:
http://www.bestcolleges.comhttp//www.bestcolleges.com/database/?pg=2
问题是XPath似乎是将新的URL属性添加到旧属性而不是替换它。
答案 0 :(得分:1)
问题是您的XPath正在选择多个@href
属性。
考虑以下HTML:
<div>
<a class="h-data-pagination__next"
href="http://www.bestcolleges.com">link 1</a>
<a class="h-data-pagination__next2"
href="http//www.bestcolleges.com/database/?pg=2">link 2</a>
</div>
您的XPath将选择两个a
元素,因为它们都具有{em>包含子字符串的@class
个属性,h-data-pagination__next
。
让您对@class
的测试更具体:
//a[@class = 'h-data-pagination__next']/@href
或更强大:
//a[contains(concat(' ', @class, ' '), ' h-data-pagination__next ')]/@href
或者,测试其他方面,例如链接内容:
//a[. = 'link 1']/@href
答案 1 :(得分:0)
您的文档中有多个<a href=
。
所以你得到一个数组结果。不要连接它,但使用迭代,或选择例如最后 href。
e.g。 //a[0]//@href
应该选择第一个