Selenium find_element_with_link_text无效

时间:2014-03-20 14:04:06

标签: python selenium

我有一段代码如下

<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"

3 个答案:

答案 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调用会使浏览器进行投票,直到该项目在页面上并且可以与其进行交互。