So I there is this button I want to click and if it's the first time you've clicked it. A javascript alert popup will appear. I've been using firebug and just can't find where that javascript is located and I've tried
if EC.alert_is_present:
driver.switch_to_alert().accept()
else:
print("no alert")
the above code works if there is an alert box but will throw an error if there is none. even though there is an else statement I've even tried
if EC.alert_is_present:
driver.switch_to_alert().accept()
elif not EC.alert_is_present:
print("no alert")
it throws me this error
selenium.common.exceptions.NoAlertPresentException: Message: No alert is present
how do we get around this?
Use try catch and if the Alert is not present catch NoAlertPresentException
exception:
from selenium.common.exceptions import NoAlertPresentException
try:
driver.switch_to_alert().accept()
except NoAlertPresentException as e:
print("no alert")
This is how you do it:
from selenium.common.exceptions import NoAlertPresentException
try:
context.driver.switch_to.alert.accept()
except NoAlertPresentException:
pass
You can replace pass
with a print
statement if you wish. Note the use of switch_to.alert
rather than switch_to_alert()
. The latter has been deprecated for a while. In the version of Selenium I have here, I see this in its code:
warnings.warn("use driver.switch_to.alert instead", DeprecationWarning)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With