如何在xpath元素上定位精确的文本



我正试图找到与精确文本匹配的xpath"制造商";但它不起作用。

我不能使用";包含";因为存在另一个具有文本"的xpath元素;由制造商终止";在里面。我需要一个解决方案,在那里我可以在其他URL上使用相同的东西,这些URL有时没有包含文本"的其他元素;制造商";像";由制造商终止";并且只有";制造商";

url为https://www.amazon.com/BEAKEY-Foundation-Blending-Flawless-Multi-colored/dp/B01F36JEXE/ref=sr_1_22?dchild=1&关键词=化妆品&qid=1625014752&sr=8-22如果有人需要参考

以下是我在尝试搜索";制造商";错误图像

该页面上有4个制造商。

你可以试试这个xpath:

(//ul[contains(@class, 'a-unordered-list')]/descendant::span[@class='a-text-bold'])[1]

以匹配

Is Discontinued By Manufacturer ‏ : ‎ No

(//ul[contains(@class, 'a-unordered-list')]/descendant::span[@class='a-text-bold'])[5]

匹配:

Manufacturer ‏ : ‎ BEAKEY

由于有2个span元素带有文本"制造商";这个应该适合那里:

"(//span[contains(text(),'Manufacturer')])[last()]"

如果您想精确匹配文本节点或元素的内容,请使用="运算符,而不是contains()

使用CCD_ 2代替"0"是常见的XPath错误=&";。事实上,根据函数的名称猜测函数的作用,而不是阅读规范,这是一个常见的错误

最新更新