Подтвердить что ты не робот

Selenium/WebDriver script прерывается предупреждением - исключение "Сообщение: u'Modal dialog present"

Я новичок в Python/JS, а также автоматизировал тестирование с помощью Selenium/WebDriver, но я добился определенного прогресса!

Теперь я застрял в одной точке, и это действительно расстраивает.

Веб-сайт, который я тестирую, продает продукты. Мне удалось сделать мой script случайным образом перемещаться и перейти на страницу оплаты, заполнить фиктивные данные, отправить данные, используя:

browser.execute_script("document.Form.submit(); return true;")
browser.execute_script("processPayment(); return true;")

Обычно есть кнопка "Платить сейчас", и щелчок по этому элементу приводит к тому же исключению, и мне не удалось щелкнуть OK/Cancel на нем через WebDriver (без WebElement), но я понял, что выполнение этого JS-кода Я могу пройти мимо него. Моя загруженная страница (после отправки данных и подтверждения ее публикации) с подтверждением и всеми правильными нагрузками данных, но Python script прерывается, и я не могу продолжить тест.

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

Пробовал использовать:

wait = ui.WebDriverWait(browser,10)
wait.until(lambda browser: browser.title.lower().startswith('Your Receipt'))
print(browser.title)

но script прерывается. Извините, если на это был дан ответ, но я не смог его найти, а также я новичок!

Спасибо заранее!

EDIT:

Сделал это! В моем случае, что сработало, я немного изменил свой код

browser.execute_script("document.roomBookingForm.submit(); return true;")
alert = browser.switch_to_alert()
alert.dismiss()
browser.execute_script("processPayment(); return true;")

Примечание для новичков, что вам нужно будет импортировать оповещение.

from selenium.webdriver.common.alert import Alert
4b9b3361

Ответ 1

Примечание для новичков (например, я), которые вам нужно будет импортировать оповещения.

from selenium.webdriver.common.alert import Alert

... ... ... (code placeholder)

browser.execute_script("document.roomBookingForm.submit(); return true;")
alert = browser.switch_to_alert()
alert.dismiss()
browser.execute_script("processPayment(); return true;")

просто добавил обработчик предупреждений