как обрабатывать предупреждения javascript в selenium с помощью python
Итак, я хочу нажать эту кнопку, и если это первый раз, когда вы ее нажали. Появится всплывающее окно предупреждения javascript. Я использую firebug и просто не могу найти, где находится этот javascript, и я пробовал
if EC.alert_is_present:
driver.switch_to_alert().accept()
else:
print("no alert")
приведенный выше код работает, если есть окно предупреждения, но будет выдавать ошибку, если ее нет. хотя есть еще одно утверждение, которое я даже пробовал
if EC.alert_is_present:
driver.switch_to_alert().accept()
elif not EC.alert_is_present:
print("no alert")
он бросает мне эту ошибку
selenium.common.exceptions.NoAlertPresentException: Message: No alert is present
как мы вам вокруг этого?
2 ответов
используйте try catch и если предупреждение отсутствует catch NoAlertPresentException
исключения:
from selenium.common.exceptions import NoAlertPresentException
try:
driver.switch_to_alert().accept()
except NoAlertPresentException as e:
print("no alert")
вот как вы это делаете:
from selenium.common.exceptions import NoAlertPresentException
try:
context.driver.switch_to.alert.accept()
except NoAlertPresentException:
pass
вы можете заменить pass
С print
заявление, если хотите. Обратите внимание на использование switch_to.alert
, а не switch_to_alert()
. Последнее уже давно не приветствуется. В версии Selenium у меня здесь, я вижу это в своем коде:
warnings.warn("use driver.switch_to.alert instead", DeprecationWarning)