我从Google的AdWords网站上获取数据,该网站包含多个具有相同id
的元素。
我想得到一个给定元素的XPath。
你能否推荐一个可以计算给定元素的XPath的jQuery / JavaScript函数,假设该页面可能包含多个具有相同id
的元素?
请不要告诉我,我不应该有多个具有相同id
的元素。这不是我的想法......
答案 0 :(得分:4)
您知道可以使用//*[@id='blah'][1]
和[2]
来访问xpath,那么您正在寻找答案吗?
答案 1 :(得分:0)
如果您知道您想要的元素将是该id的第n个出现,那么Martin的建议将起作用。
您还可以通过搜索多个属性并定义元素来缩小结果,例如,您知道id对于具有特定名称或类的div元素是唯一的。
//div[@id='hello' and @name='world']
这对您来说已经足够了,但如果没有,那么您可以通过相对于其他元素进行搜索来找到您想要的元素。
给出xml:
<root>
<div id='parent1'>
<div id='element1' />
<div id='element2' />
</div>
<div id='parent2'>
<div id='element1' name='foo' />
<div id='element2' name='bar' />
</div>
</root>
您可以通过以下方式获得第二个元素2:
/root/div[2]/div[2]
//div[@id='parent2']/div[@id='element2']
//div[@id='element2' and name='bar']
//div[@id='element1' and @name='foo']/../div[@id='element2']