Błąd Webdrivera: „Brak alarmu” po zgłoszeniu UnexpectedAlertPresentException
Próbuję przetestować rozwijaną aplikację internetową. Używam sterownika Firefox przeciwko Firefoksowi 22.0.
W pewnym momencie może pojawić się modalne okno dialogowe (monit JavaScript ()). Jeśli tak, chcę wprowadzić jakiś tekst, a następnie go odrzucić (kliknij OK).
Oto odpowiedni kod:
try:
if button.text == "Run":
button.click()
except UnexpectedAlertPresentException:
alert = self.driver.switch_to_alert()
print alert.text
alert.send_keys('8080')
alert.dismiss()
TheUnexpectedAlertPresentException
jest rzucony. Jednak jak tylko spróbuje wykonaćprint alert.text
, Dostaję:
`NoAlertPresentException: Message: u'No alert is present'`.
Jeśli usuwam instrukcję drukowania, wybuchnie walert.send_keys
z:
`WebDriverException: Message: u'fxdriver.modals.find_(...) is null'`
Nie rozumiem tego. Nie jestNoAlertPresentException
z definicji sprzeczne zUnexpectedAlertPresentException
który został rzucony i spowodował wykonanie bloku wyjątkiem?
Edytuj: Również nie mogę przez całe życie znaleźć żadnej dokumentacji na tematUnexpectedAlertPresentException
whttp://selenium.googlecode.com/svn/trunk/docs/api/py/index.html#documentation
Edytuj 2: oto, co mam teraz:
try:
if button.text == "Run":
button.click()
alert = self.driver.switch_to_alert()
alert.send_keys('1111')
alert.dismiss()
except NoAlertPresentException:
pass
Jednak nadal to widzę:
WebDriverException: Message: u'fxdriver.modals.find_(...) is null'
na liniialert.send_keys('8080')
. Chyba nie rozumiem dlaczegoswitch_to_alert()
nie rzucaNoAlertPresent
jeśli nie ma ostrzeżenia ... to właśnie zakładamWebDriverException
wskazuje.