使用Selenium和python检查是否存在任何警报

我正在尝试使用python语言的硒为管理用户的网页编写测试。有人可以在此页面中为用户添加角色,如果在添加角色时存在角色,则会发出警报。我不知道警报是JavaScript警报还是网页元素。我想自动检查警报的存在,因为检查列表中的角色既浪费时间又负担很大。我尝试了这个:


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"

但这没有用,我收到了“ UnexpectedAlertPresentException”。我也试过这个:


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()) 

但是我也有同样的例外。此外,我尝试使用Firebug访问警报,以检查是否可以访问其属性,但是右键单击已禁用。我需要非常快速的解决方案,即使使用其他语言也是如此。我仍然可以理解这种方法。我将不胜感激。


牛魔王的故事
浏览 512回答 3
3回答

慕勒3428872

在Java中,我们这样做WebDriverWait wait3 = new WebDriverWait(driver, 7000);wait3.until(ExpectedConditions.alertIsPresent());driver.switchTo().alert().accept();如果不存在警报,它将隐式等待警报,它将抛出“警报不存在”,我们可以捕获并继续前进。希望能帮助到你。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python