Python Sélénium UnexpectedAlertPresentException

Je suis en cours d'exécution de base CRUD tests avec python et de la laitue en utilisant selenium webdriver.

Tous mes autres tests s'exécutent correctement, mais lorsque je clique sur "Supprimer", il y a une boîte de dialogue modale qui demande à l'utilisateur de confirmer qu'ils veulent supprimer cet utilisateur. Le moment le popup s'affiche, je reçois l'exception ci-dessous. J'ai perdu 2 heures à essayer d'obtenir que cela fonctionne. J'imagine que il y a une solution simple.

 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)

La ligne dans steps.py qui est en train de jeter l'erreur est présente.

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

Et le html pour cet élément est présent.

<a href="/users/5910974510923776/delete" onclick="return confirm('Are you sure you want to delete this user?');">Delete User</a>
Si une alerte de l'emploi (comme en java) d.switchTo().alert().accept(); (s'il vous plaît trouver l'équivalent de liaison en python). Si ses une boîte de dialogue modale alors je suppose que u peut essayer de trouver le localisateur de ok.
c'est juste driver.switch_to_alert.accept() ou même driver.switch_to.alert.accept(). Je l'ai trouvé légèrement différences sur les deux mehods donc pensé que c'est important de conseil pour tous ceux qui luttent autour de cela. La même chose s'applique à la driver.switch_to.window() méthode.

OriginalL'auteur andygimma | 2015-02-08