Reputation: 511
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?
self.br.find_element_by_xpath("//*[@id='btnAddKeywords']").click()
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
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
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