所以对于你的XPath,要与你能轻易的元素或根开始,在这种情况下,第一div
其中类是'a-row a-spacing-small'
:
//div[@class='a-row a-spacing-small']
下一个将是确定你的元素如何与这个根元素,所以在这种情况下,你想要一个href
这将是一个a
这应该是我们里面的identified..but你div
不确定它是否是一个直接的孩子。 。所以你用//
:
//div[@class='a-row a-spacing-small']//a/@href
但你只想要这个元素,如果div
旁边满足condition..so我们应该把东西在XPath的开始,我们的”前的XPath VE已经创建...
//<somexpath>/div[@class='a-row a-spacing-small']//a/@href
但什么的XPath?我们知道什么是我们正在做的第二div
根,因为它有我们想要的状态...
//div[@class='a-row']
那么,如何第一div
涉及到我们的新的根?这是一个preceding-sibling
,因为它是新的根之前,它是在同一水平..
//div[@class='a-row']/preceding-sibling::div[@class='a-row a-spacing-small']//a/@href
现在无论条件是,我们需要把它列入根...
//div[@class='a-row' and <condition>]/preceding-sibling::div[@class='a-row a-spacing-small']//a/@href
例子:
如果条件是DIV应该有一个a
文本“有条件的链接”: //div[@class='a-row' and .//a[text()='conditional link']]/preceding-sibling::div[@class='a-row a-spacing-small']//a/@href
如果条件是DIV应该有一个禁用的属性: //div[@class='a-row' and @disabled]/preceding-sibling::div[@class='a-row a-spacing-small']//a/@href
怎么样也没有残疾人属性? //div[@class='a-row' and not(@disabled)]/preceding-sibling::div[@class='a-row a-spacing-small']//a/@href
发挥它...
你可以分享更详细的HTML吗?这种情况是什么? – Andersson