#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()
РЕДАКТИРОВАТЬ: Это снова происходит там, где у меня нет формы. Любые советы полезны, пожалуйста! ТИА!