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 throw NoAlertPresent
if there isn't an alert...which is what I'm assuming the WebDriverException
is indicating.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…