Check if any alert exists using selenium with python

0
0

I’m trying to write a test with selenium in python language for a web page that manages users. In this page someone can add role for users and if a role exists while adding it, an alert raises. I don’t know if the alert is a javascript alert or an element of the web page. I want to automatically check the existence of the alert, because checking for the role in the list wastes time and has an enormous load. I tried this:

browser = webdriver.Firefox()
browser
.get("url")
browser
.find_the_element_by_id("add_button").click()
try:
alert
= browser.switch_to_alert()
alert
.accept()
print "alert accepted"
except:
print "no alert"

But it didn’t work and I got the “UnexpectedAlertPresentException”.
I also tried this:

browser = webdriver.Firefox()
browser
.get("url")
browser
.find_the_element_by_id("add_button").click()
s
= set(browser.window_handles)
s
.remove(browser.current_window_handle)
browser
.switch_to_window(s.pop())

But I got the same exception.
Additionally, I tried to access the alert with firebug to check if I can get access with its properties, but right click was disabled.
I need a solution very quickly, even in other languages. I can understand the approach anyway.
I will appreciate any help.

  • You must to post comments
0
0

What I do is to set a conditional delay with WebDriverWait just before the point I expect to see the alert, then switch to it, like this:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
browser
= webdriver.Firefox()
browser
.get("url")
browser
.find_the_element_by_id("add_button").click()
try:
WebDriverWait(browser, 3).until(EC.alert_is_present(),
'Timed out waiting for PA creation ' +
'confirmation popup to appear.')
alert
= browser.switch_to.alert
alert
.accept()
print("alert accepted")
except TimeoutException:
print("no alert")

WebDriverWait(browser,3) will wait for at least 3 seconds for a supported alert to appear.

  • You must to post comments
Showing 1 result
Your Answer
Post as a guest by filling out the fields below or if you already have an account.
Name*
E-mail*
Website