使用python单击使用selenium的链接

Mar*_*ark 7 python selenium click dom-events selenium-webdriver

这是我试图点击的链接:

<a href="#" onclick="OpenAddKeywords();return false;" id="btnAddKeywords">Add Keywords</a>
Run Code Online (Sandbox Code Playgroud)

我尝试了一些选项(如下所列),但它们没有用; 有任何想法吗?

  1. self.br.find_element_by_xpath("//*[@id='btnAddKeywords']").click()
  2. self.br.execute_script("OpenAddKeywords();return false;")

这是我得到的错误execute_script:

<a href="#" onclick="OpenAddKeywords();return false;" id="btnAddKeywords">Add Keywords</a>
Run Code Online (Sandbox Code Playgroud)

这是我得到的那个xpath:

<a href="#" onclick="OpenAddKeywords();return false;" id="btnAddKeywords">Add Keywords</a>
Run Code Online (Sandbox Code Playgroud)

Zei*_*zar 5

正如我在这里提到的那样,问题将通过ActionChains阶级来解决; 这里有一个简短的代码:

el = driver.find_element_by_id("someid")
webdriver.ActionChains(driver).move_to_element(el).click(el).perform()
Run Code Online (Sandbox Code Playgroud)

主要问题是,在某些情况下,特别是当你的页面中有一些javascript代码时,DOM会发生变化,你之前找到的元素会被破坏.'ActionChains'将保持活着以执行操作.


Kv.*_*mar 3

您可以尝试使用 xpath,如下所示。它对我有用,因为我使用了上一个项目。

driver.find_element_by_xpath("xpath").click()
Run Code Online (Sandbox Code Playgroud)

请尝试一下...