我正在使用Selenium做一些webscraping,我现在想找到用户可以点击的所有元素,其中包含链接文本,按钮文本,元素id
,单词中的"download"(任何大小写)元素class
或href
.这可以包括链接,按钮或任何其他元素.
在这个答案中,我找到了一个xpath,寻找一个xpath来搜索基于某个文本(或非区分大小写和部分匹配)的按钮:
text = 'download'
driver.find_elements_by_xpath("(//*[contains(text(), 'download')]")
Run Code Online (Sandbox Code Playgroud)
但在此页面上不返回任何结果,即使以下链接在那里:
<a id="downloadTop" class="navlink" href="javascript:__doPostBack('downloadTop','')">Download</a>
Run Code Online (Sandbox Code Playgroud)
有谁知道如何找到所有在网站中包含"下载"一词的元素?
[编辑]此问题被标记为一个问题的副本,该问题得到一个答案,建议将其更改为"//*[text()[contains(.,'download')]]"
.所以我尝试了以下方法:
>>> from selenium import webdriver
>>> d = webdriver.Firefox()
>>> link = 'https://www.yourticketprovider.nl/LiveContent/tickets.aspx?x=492449&y=8687&px=92AD8EAA22C9223FBCA3102EE0AE2899510C03E398A8A08A222AFDACEBFF8BA95D656F01FB04A1437669EC46E93AB5776A33951830BBA97DD94DB1729BF42D76&rand=a17cafc7-26fe-42d9-a61a-894b43a28046&utm_source=PurchaseSuccess&utm_medium=Email&utm_campaign=SystemMails'
>>> d.get(link)
>>> d.find_elements_by_xpath("//*[text()[contains(.,'download')]]")
[] # As you can see it still doesn't get any results..
>>>
Run Code Online (Sandbox Code Playgroud)
有没有人知道如何在链接文本,按钮文本,元素id
,元素class
或href
?中获取用户可以单击的所有元素以及哪些元素包含单词"download" ?欢迎所有提示!