Я пытаюсь «принять» простое модальное оповещение (всплывающее окно на экране только с кнопкой «ОК»), но switch_to_alert () в driver.switch_to_alert () получает зачеркнутый сигнал (на pycharm).
Я использую управляемый данными скрипт тестирования с OpenPyxl. Я написал условие, которое берет имя пользователя и пароль из электронной таблицы и добавляет их для входа на веб-страницу. Если вход выполнен успешно, код работает, но условие «else» (т. Е. Сбой входа в систему не удается) вызывает проблемы из-за всплывающего предупреждения, и я не уверен, как его закрыть.
Я хотел бы понять, почему driver.switch_to_alert () получает зачеркивание и как его исправить.
Я добавил следующую строку в «else» условие «driver.switch_to_alert ()», но switch_to_alert () имеет удар, хотя.
Если я переместлю driver.switch_to_alert () выше строки driver = self.driver, зачеркивание не произойдет.
В качестве альтернативы, если я просто пишу switch_to_alert () в условии else, не будет зачеркивания, но код завершится неудачно, когда вызывается условие else. Я получаю сообщение об ошибке:
selenium.common.exceptions.UnexpectedAlertPresentException: текст оповещения: нет
Сообщение: диалоговое окно с запросом уволенного пользователя: Неверный пользователь или пароль
Я также попытался получить полную информацию (возврат на домашнюю страницу), но тоже не получилось.
def test_login_valid(self):
driver = self.driver
driver.get('http://www.demo.guru99.com/V4/')
#count how many rows in spreadsheet and add read username and password
#and add to www.demo.guru99.com login
for r in range(2, rows + 1):
username = spreadsheet.readData(path, "Sheet1", r, 1)
password = spreadsheet.readData(path, "Sheet1", r, 2)
login.enter_username(username)
login.enter_password(password)
login.click_login()
#If login is successful then pass test
if driver.title == "Guru99 Bank Manager HomePage":
print("test is passed")
spreadsheet.writeData(path, "Sheet1", r, 3, "test passed")
#return back to home page - i dont think i should need this line???
driver.get('http://www.demo.guru99.com/V4/')
else:
print("test failed")
spreadsheet.writeData(path, "Sheet1", r, 3, "test failed")
#accept the alert popup and close - python is striking though the bold
driver.switch_to_alert().accept() # error shown on this line
Я ожидаю, что когда имя пользователя или пароль при входе неверны, тогда условие «else» должно быть в состоянии выбрать «ok» в уведомлении о предупреждении. Это закроет всплывающее окно и в результате тест вернется на домашнюю страницу.