Selenium .click() перемещает веб-страницу и отображает ошибку: …. не удалось прокрутить в поле зрения

#python #selenium #authentication #webdriver

Вопрос:

Я пытаюсь автоматизировать вход на сайт, и вот как это выглядит, когда я изначально перехожу на страницу: Нажмите здесь, чтобы увидеть

и после того, как я выполню команду .click() в Selenium, страница будет выглядеть так:

введите описание изображения здесь

И выбрасывает эту ошибку:

     selenium.common.exceptions.ElementNotInteractableException: Message: Element <button class="classnamewashere"> could not be scrolled into view
 

Мой исходный код выглядит следующим образом:

 driver.get("website")
driver.find_element(By.ID, "u").send_keys("uname")
driver.find_element(By.ID, "p").send_keys("pword")

login = driver.find_element_by_tag_name("button")

login.click()
 

Основываясь на моем поиске здесь, я попытался:

 driver.execute_script('arguments[0].scrollIntoView(true);', login)
 

перед .click ()
, а также

 element = WebDriverWait(driver, 30).until(EC.element_to_be_clickable((By.TAG_NAME, 'button')))
element.location_once_scrolled_into_view
element.click()
 

Ничего не работает. Ты знаешь, как я могу заставить его перестать меняться? У меня даже нет полосы прокрутки внизу страницы. Мне приходится каждый раз перезаряжать его, чтобы привести в нормальное состояние.

ПРАВКА: Теперь это происходит на другой странице, на том же сайте. Любые советы были бы полезны, пожалуйста! Спасибо!

Комментарии:

1. Нам нужно увидеть эту веб-страницу, но вы не поделились ссылкой

2. Извините, но это внутренний сайт компании, поэтому я не могу поделиться ссылкой. Я пытался поделиться как можно большим, чем мог. Что-нибудь конкретное вам может понадобиться?

Ответ №1:

Я думаю, что это сработало — мне пришлось подняться на уровень от тега « button » до тега « form » и использовать .submit()

 login2 = driver.find_element_by_tag_name('form')
login2.submit()
 

РЕДАКТИРОВАТЬ: Это снова происходит там, где у меня нет формы. Любые советы полезны, пожалуйста! ТИА!