![](/img/trans.png)
[英]selenium RC python, using find_element_by_link_text
[英]python selenium find_element_by_link_text, element exists but not found
我正在嘗試使用 python 中的 selenium 單擊此鏈接:
<header class="row package-collapse">
<h5 ng-bind="ctrl.getPackageHeader(package)" class="ng-binding">Package "1" - not yet downloaded</h5>
<!-- ngIf: package.DownloadedAt -->
</header>
在嘗試了許多不同的替代方案之后,我終於設法通過遍歷鏈接來實現這一點,直到找到正確的文本,如下所示:
list = browser.find_elements_by_tag_name("h5")
for item in list:
text = item.text
if text == 'Package "1" - not yet downloaded':
item.click()
好的,所以,它有效。 但是,如果我只是嘗試明顯的解決方案,為什么我會收到“無法定位元素”錯誤:
browser.find_element_by_link_text('Package "1" - not yet downloaded')
它就在那里,我正在看着它,所以我只是不明白我做錯了什么。 我也嘗試過使用部分鏈接文本在沒有“1”的情況下搜索它,使用單引號或雙引號,但我仍然得到“無法定位元素”。 沒有框架,沒有新的 windows 開口或任何東西。
是的,我發布這個是因為我是一個新手,不知道我在做什么,所以不需要詳細說明這一點,謝謝。 :)
這是因為by_link_text
僅適用於<a>
標簽。 對於其他標簽,您可以使用xpath
完全符合
find_element_by_xpath("//h5[.='Package \"1\" - not yet downloaded']")
對於部分文本
find_element_by_xpath("//h5[contains(., '\"1\" - not yet downloaded')]")
它在文檔中解釋說find_element_by_link_text
僅適用於錨標記內的 href 文本,您指向 h5 標記並且“包“1”-尚未下載”不在錨標記中
如果您想使用文本處理您的 h5 元素,請在下面使用 xpath
driver.find_elements_by_xpath("//*[contains(text(), 'Package \"1\" - not yet downloaded')]")
find_element_by_link_text
僅適用於鏈接。 即href
試試 find_element_by_partial_link_text。 “部分”在從公共網站提取信息方面發揮了重要作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.