使用python单击使用selenium的链接

时间:2013-07-05 23:21:26

标签: python selenium javascript-events click selenium-webdriver

以下是我要点击的链接:

<a href="#" onclick="OpenAddKeywords();return false;" id="btnAddKeywords">Add Keywords</a>

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

  1. self.br.find_element_by_xpath("//*[@id='btnAddKeywords']").click()
  2. self.br.execute_script("OpenAddKeywords();return false;")
  3. 这是我为execute_script所犯的错误:

     Message: u'Error Message => \'Can\'t find variable: OpenAddKeywords\'\n caused by Request =>
    

    这是我为xpath获得的那个:

    Message: u'Error Message => \'Unable to find element with xpath \'//*[@id=\'btnAddKeywords\']\'\'\n caused by Request =>
    

2 个答案:

答案 0 :(得分:5)

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

el = driver.find_element_by_id("someid")
webdriver.ActionChains(driver).move_to_element(el).click(el).perform()

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

答案 1 :(得分:3)

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

driver.find_element_by_xpath("xpath").click()

请试一试......