Почему мне не подходят методы ActionsChains в Selenium для python? - PullRequest
0 голосов
/ 06 октября 2018

Я пытаюсь запустить простую программу на Python, чтобы ввести ключ поиска, а затем открыть эту ссылку в новой вкладке, используя "Мне повезет" из Google, используя селен.

Проблема в context_click()метод ничего не делаетэто даже не показывает никаких ошибок.Метод click() от ActionsChains также не работает (без ошибок, но без эффекта).но простой webelement.click() работает.Код:

import  selenium
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.action_chains import ActionChains
opts = Options()
driver=webdriver.Chrome(r"chromedriver")
opts.add_argument('--headless')
driver.get("https://www.google.com/")
act = ActionChains(driver)
driver.find_element_by_id('lst-ib').send_keys("some_search_word_that_doesnt_have_suggestions")
webelem=driver.find_element_by_name('btnI')
act.context_click(webelem)

Также я пытался запустить это в безголовом режиме, используя opts.add_argument ('- headless'), но даже это не работает вообще (никаких ошибок, но окно все еще всплывает). (Быстрое решение этой проблемы приветствуется)

1 Ответ

0 голосов
/ 06 октября 2018

Вам необходимо добавить следующую строку в конец вашего кода.

act.perform()

Из документов https://selenium -python.readthedocs.io / api.html # module-selenium.webdriver.common.action_chains

Когда вы вызываете execute (), события запускаются в порядке их постановки в очередь.

Обратите внимание, что ваш код открываетконтекстное меню (щелчок правой кнопкой мыши), если вы действительно хотите нажать на кнопку, используйте:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...