Mark
Mark

Reputation: 511

Clicking a link using selenium using python

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

Upvotes: 7

Views: 11106

Answers (2)

Zeinab Abbasimazar
Zeinab Abbasimazar

Reputation: 10439

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.

Upvotes: 5

Kv.senthilkumar
Kv.senthilkumar

Reputation: 946

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

Upvotes: 3

Related Questions