尝试使用Python在Selenium中查找并单击链接

时间:2014-04-20 20:31:20

标签: python selenium selenium-webdriver webdriver

我有一个页面,其中包含以下html行

<td><span><a onClick="setSummaryClasses(3)">Reality</a></span></td>

从FF Source面板复制。我尝试用

单击锚点
driver.find_element_by_link_text('Reality').click()

我得到了

NoSuchElementException: Message: u'Unable to locate element: {"method":"link text","selector":"Reality"}'

我错过了什么?

我有两个

driver.set_script_timeout(10)
driver.implicitly_wait(10) # seconds

活性。

2 个答案:

答案 0 :(得分:3)

  1. 确保链接不在任何类型的框架内。否则请先使用switch_to_frame

  2. 当您匹配链接文字时,请记住它与完全匹配,因此如果您有杂乱的空格,请尝试find_element_by_partial_link_text

    driver.find_element_by_partial_link_text('Reality').click()
    
  3. 更改定位器可能也会有所帮助。

    driver.find_element_by_css_selector("a[onClick='setSummaryClasses(3)']").click()
    

答案 1 :(得分:1)

感谢user1177636,我意识到,当点击打开一个窗口时,在LIVE情况下,新窗口将成为当前的“顶部”窗口,而在Selenium中则不会。

因此我需要

driver.switch_to_window('Chat23')

在寻找元素之前。

希望这有助于某人。