我有一段代码如下
<a class="country" href="/es-hn">
Honduras
</a>
我试图通过
分配给变量el = self.driver.find_element_by_link_text('Honduras')
然而,每当我运行它时,我都会收到以下错误:
NoSuchElementException: Message: u"Unable to find element with link text == Honduras"
答案 0 :(得分:2)
我看到link_text
在尝试找到这样的块形成链接时模糊了。我认为它与制表有关:
<a class="country" href="/es-hn">
[ ]Honduras
</a>
在这样的情况下似乎只能保持一致:
<a class="country" href="/es-hn">Honduras</a>
el = self.driver.find_element_by_css_selector("a.country[href$='es-hn']")
答案 1 :(得分:1)
我同意sircapslot,在这种情况下partial link text
也会起作用:
el = self.driver.find_element_by_partial_link_text('Honduras')
答案 2 :(得分:0)
当selenium在您的应用程序尚未呈现链接时尝试查找链接时,可能会发生这种情况。所以你需要让它等到链接出现:
browser.implicitly_wait(10) # 10 seconds
el = self.driver.find_element_by_link_text('Honduras')
implicitly_wait
调用会使浏览器进行投票,直到该项目在页面上并且可以与其进行交互。