У меня есть ситуация, когда я тестирую некоторые вещи с помощью selenium webdriver. При попытке входа в OneDrive драйвер игнорирует все ожидания, и я получаю «элемент не видимой ошибки», конкретно для страницы, на которой вы вводите пароль. Это происходит только в этой ситуации, и все остальные экземпляры, где я использую почти тот же код для запуска процесса входа на нескольких страницах, работают нормально.webdriver игнорирует ожидания на определенных страницах
Это код, соответствующий коду неисправного
def selenium_onedrive(loading_done_event, selenium, user, psw):
loading_done_event.wait()
login = selenium.find_elements_by_name('loginfmt')[0]
login.send_keys(user)
next_step = selenium.find_element_by_id('idSIButton9')
next_step.click()
password = WebDriverWait(selenium, 10).until(
# EC.presence_of_element_located((By.NAME, "passwd"))
EC.element_to_be_clickable((By.ID, "i0118"))
)
**password.send_keys(psw)**
# password.submit()
next_step = selenium.find_element_by_id('idSIButton9')
next_step.click()
Жирная линия является тот, где ocurs ошибок. Он говорит, что элемент не может быть найден, но ожидания (даже неявные) игнорируются.
И это пример кода авторизации, который работает
def selenium_gdrive(loading_done_event, selenium, user, psw):
loading_done_event.wait()
login = selenium.find_elements_by_name('Email')[0]
login.send_keys(user)
selenium.find_elements_by_name('signIn')[0].click()
password = WebDriverWait(selenium, 10).until(
EC.presence_of_element_located((By.NAME, "Passwd"))
)
password.send_keys(psw)
password.submit()
# now we will be navigated to the consent page
consent_accept_button = WebDriverWait(selenium, 10).until(
EC.element_to_be_clickable((By.ID, "submit_approve_access"))
)
consent_accept_button.click()
Дополнительной информации, работает код с драйвером Firefox. Если я использую версию Chrome, она работает нормально, но она нестабильна и получает случайное «соединение завершено удаленно»
Какая линия отвечает за это? –
ошибка высылается в этой строке "password.send_keys (psw)" В нем говорится, что элемент не может быть найден. и он полностью игнорирует ожидания, даже если я использую implicitly_wait() – inigo