Я пишу сценарий для загрузки набора файлов на веб-сайт с использованием Selenium и его драйвера Chrome в Python, но мне неприятно видеть, что браузер открывается и получает фокус, когда программа открывает новую вкладку или щелкает на кнопку загрузки.
Так что я скорее хочу использовать режим без головы. Но тогда элемент всегда вызывает следующую ошибку:
WebDriverException: Сообщение: неизвестная ошибка: Элемент ... не активен в точке (435, 575). Другой элемент получит клик:
...
(Информация о сеансе: безголовый хром = 66.0.3359.139)
(Информация о драйвере: chromedriver = 2.37.544337 (8c0344a12e552148c185f7d5117db1f28d6c9e85), платформа = Mac OS X 10.13.4 x86_64)
Эта ошибка однажды произошла в моем режиме без заголовка, но поскольку я изменил размер браузера на driver.maximize_window()
, ошибка исчезла. Это может дать понять, что кнопка должна быть видна на экране, чтобы ее можно было нажимать в Chrome.
Но в безголовом режиме может показаться, что кнопка скрыта, и поэтому элемент всегда можно щелкнуть, что приводит к ошибке. Так есть ли способ сделать кнопку нажатой даже в безголовом режиме?
Соответствующий код следующий, а последняя строка вызывает ошибку:
def login(driver, url, username, password):
driver.get(url)
uname = driver.find_element_by_name("login")
uname.send_keys(username)
passw = driver.find_element_by_name("password")
passw.send_keys(password)
submit_button = driver.find_element_by_class_name("button")
action = webdriver.ActionChains(driver)
action.move_to_element(submit_button)
submit_button.click()