7

Here is the link I'm trying to click:

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

I tried a few options(listed below) but they didn't work; any ideas?

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

This is the error I've got for execute_script:

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

And this is the one that I've got for xpath:

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

Brian Tompsett - 汤莱恩
  • 5,753
  • 72
  • 57
  • 129
Mark
  • 513
  • 2
  • 8
  • 19

2 Answers2

5

As I mentioned in my own question here, the problem would be solved by means of ActionChains class; a brief code is here:

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

The main problem is that in some cases, specially when you have a some javascript codes in your page, the DOM would change and the element you've found before will be staled. 'ActionChains' would keep it alive to perform actions on.

Community
  • 1
  • 1
Zeinab Abbasimazar
  • 9,835
  • 23
  • 82
  • 131
3

You can try to use xpath like below. It is working for me because i have used last project.

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

Please try it...

Kv.senthilkumar
  • 936
  • 2
  • 16
  • 29