Python Selenium UnexpectedAlertPresentException

я запускаю основные тесты CRUD с python и салатом, используя selenium webdriver.

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

 File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/errorhandler.py", line 164, in check_response
    raise exception_class(message, screen, stacktrace)
UnexpectedAlertPresentException: Message: u'Modal dialog present' ; Stacktrace: 
    at nsCommandProcessor.prototype.execute (file:///tmp/tmpeV2K89/extensions/fxdriver@googlecode.com/components/command_processor.js:11520:13)

линии в steps.py это бросает ошибку этот.

  world.browser.find_element_by_link_text("Delete User").click()

и html для этого элемента-это.

<a href="/users/5910974510923776/delete" onclick="return confirm('Are you sure you want to delete this user?');">Delete User</a>

1 ответов


вам нужно переключиться на оповещение и принять это:

world.browser.find_element_by_link_text("Delete User").click()
alert = world.browser.switch_to.alert
alert.accept()