Reputation: 47
I wonder if someone has solution how to perform trivial right click action on any element of DOM. Let's for example do right click on the 'Google Search' button to select 'Save Page As' option. According to my research it involves ActionChains. Roughly my code is as follows:
from selenium import webdriver
from selenium.webdriver.support.ui import Select
from selenium.webdriver import ActionChains
br = webdriver.Firefox()
br.get('http://www.google.com')
btn=br.find_element_by_id('qbqfba')
actionChains = ActionChains(br)
actionChains.context_click(btn).perform()
The following errors occurs:
File "/usr/local/lib/python2.7/dist-packages/selenium-2.39.0-py2.7.egg/seleniu
m/webdriver/remote/errorhandler.py", line 164, in check_response
raise exception_class(message, screen, stacktrace)
MoveTargetOutOfBoundsException: Message: u'Offset within element cannot be scrol
led into view: (50, 14.5): [object XrayWrapper [object HTMLButtonElement]]' ; St
acktrace:
at FirefoxDriver.prototype.mouseMove (file:///tmp/tmpuIgKVI/extensions/fxdri
[email protected]/components/driver_component.js:9176)
at DelayedCommand.prototype.executeInternal_/h (file:///tmp/tmpuIgKVI/extens
ions/[email protected]/components/command_processor.js:10831)
at DelayedCommand.prototype.executeInternal_ (file:///tmp/tmpuIgKVI/extensio
ns/[email protected]/components/command_processor.js:10836)
at DelayedCommand.prototype.execute/< (file:///tmp/tmpuIgKVI/extensions/fxdr
[email protected]/components/command_processor.js:10778)
Where I get wrong with it? p.s. My testing environment is Ubuntu 12.04, just in case is matter.
Upvotes: 2
Views: 5950
Reputation: 369424
The id
attribute of the Google Search button is gbqfba
, not qbqfba
(if you are seeing the same google search page I am seeeing):
btn = br.find_element_by_id('gbqfba')
# ^
Alternatively you can find button by text:
br.find_element_by_xpath('.//button[contains(., "Google Search")]')
Upvotes: 2