1

Интересно, у кого-то есть решение, как выполнить тривиальное действие правой кнопки мыши на любом элементе DOM. Давайте, например, сделаем правильный щелчок по кнопке «Поиск Google», чтобы выбрать вариант «Сохранить страницу как». Согласно моим исследованиям, это включает ActionChains. Примерно мой код выглядит следующим образом:Как выполнить правый щелчок, используя Selenium в python?

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() 

следующие ошибки происходит:

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) 

Где я с ним не так? стр. Моя тестовая среда - Ubuntu 12.04, на всякий случай.

ответ

1

атрибут в Google Search кнопку id является gbqfba, не qbqfba (если вы видите один и тот же поиск Google страницы Я seeeing):

btn = br.find_element_by_id('gbqfba') 
#       ^

Google Search button

В качестве альтернативы вы можете найти по тексту:

br.find_element_by_xpath('.//button[contains(., "Google Search")]') 
+0

thanks falsetru. Он работает отлично. Теперь пришло время для другого шага, как управлять правым щелчком, чтобы выполнить «сохранить как страницу»? –

+0

@karolinastamblewska, Добро пожаловать в переполнение стека! Если это вам помогло, вы можете рассказать об этом сообществу, [принимая ответ] (http://meta.stackexchange.com/a/5235). – falsetru

+0

@karolinastamblewska, нажмите 'p' (клавиша быстрого доступа для сохранения страницы как)' actionChains.send_keys ('p'). Выполнить() ', теперь откроется диалог save ... – falsetru