I'm trying to test a webapp I'm developing. I'm using the Firefox driver against Firefox 22.0.

At one point, a modal dialog may pop up (a Javascript prompt()). If it does, I want to enter some text and then dismiss it (click OK).

Here's the relevant code:

try:
    if button.text == "Run":
        button.click()
except UnexpectedAlertPresentException:
    alert = self.driver.switch_to_alert()
    print alert.text
    alert.send_keys('8080')
    alert.dismiss()

The UnexpectedAlertPresentException is being thrown. However, as soon as it tries to execute print alert.text, I get:

`NoAlertPresentException: Message: u'No alert is present'`.

If I remove the print statement, it blows up at alert.send_keys with:

`WebDriverException: Message: u'fxdriver.modals.find_(...) is null'`

I don't get it. Isn't the NoAlertPresentException by definition contradicting the UnexpectedAlertPresentException that was thrown and caused the except block to be executed in the first place?

Edit: Also, I can't for the life of me find any documentation on the UnexpectedAlertPresentException in http://selenium.googlecode.com/svn/trunk/docs/api/py/index.html#documentation

Edit 2: This is what I have now:

try:
    if button.text == "Run":
        button.click()

        alert = self.driver.switch_to_alert()

        alert.send_keys('1111')
        alert.dismiss()

 except NoAlertPresentException:
     pass

However, I'm still seeing this:

WebDriverException: Message: u'fxdriver.modals.find_(...) is null' 

on the line alert.send_keys('8080'). I guess I don't understand why switch_to_alert() doesn't t

Edit
Report