【发布时间】:2021-10-16 05:27:02
【问题描述】:
我目前正在尝试使用 Python 中的 Selenium 单击网页上的每个按钮,每个按钮的类和文本始终相同,但每个按钮都有不同的 id。但是,ID 在 {} 中的“数据参数”内,我无法弄清楚如何获得 xpath 的正确语法。 这是其中一个按钮的网站 sn-p:
<span class="contains-icon-details gc-btn gc-btn--s" data-isneededpromise="false" data-parameters="{"partner":"gs", "realId": "8da1d6a9-44d1-4556-bc12-92699749a30a", "tnId": "102086182829", "type": "details"}">More Details</span>
realId 和 tnId 似乎是唯一的,所以我需要找到其中任何一个的按钮。
这行得通:
driver.find_element_by_xpath("//span[@class='contains-icon-details gc-btn gc-btn--s']").click()
但当然只适用于第一个按钮,因为类始终相同。
我尝试过这样的事情:
driver.find_element_by_xpath("//*[contains(@tnId, '102086182829')]").click()
但我明白了
Unable to locate element: //*[contains(@tnId, '102086182829')]
所以绝对不是正确的语法。
我试图在网上找到解决方案,但到目前为止没有运气。谁能指出我正确的方向?提前致谢。
【问题讨论】:
标签: python selenium web-scraping xpath selenium-firefoxdriver