转:WebDriver(Selenium2) 处理可能存在的JS弹出框
2014-10-10 11:03
363 查看
在自动化测试过程中,有些情况下我们会遇到一些潜在的Javascript弹出框。(即某些条件下才会出现,不是固定出现),然后如果当这种弹出框出现,我们没有加以处理,WebDriver将无法进行下一步的操作,并且会抛出NoAlertPresentException的异常(从2.16版本开始)。所以,使用以下方法可以处理潜在的1个alert(javascript弹出框)。
Java代码
public boolean dealPotentialAlert(WebDriver driver,boolean option) {
boolean flag = false;
try {
Alert alert = driver.switchTo().alert();
if (null == alert)
throw new NoAlertPresentException();
try {
if (option) {
alert.accept();
System.out.println("Accept the alert: " + alert.getText());
} else {
alert.dismiss();
System.out.println("Dismiss the alert: " + alert.getText());
}
flag = true;
} catch (WebDriverException ex) {
if (ex.getMessage().startsWith("Could not find"))
System.out.println("There is no alert appear!");
else
throw ex;
}
} catch (NoAlertPresentException e) {
System.out.println("There is no alert appear!");
}
return flag;
}
方法返回值为,调用出是否出现了alert。
参数列表中第二个参数option为期望对alert的处理方式(true:ok/false:cancle)
在selenium2.20及以上版本中,增加了alertIsPresent方法。 也可以将这个方法替换上面的内容。用于捕获alert。
Java代码
public boolean dealPotentialAlert(WebDriver driver,boolean option) {
boolean flag = false;
try {
Alert alert = driver.switchTo().alert();
if (null == alert)
throw new NoAlertPresentException();
try {
if (option) {
alert.accept();
System.out.println("Accept the alert: " + alert.getText());
} else {
alert.dismiss();
System.out.println("Dismiss the alert: " + alert.getText());
}
flag = true;
} catch (WebDriverException ex) {
if (ex.getMessage().startsWith("Could not find"))
System.out.println("There is no alert appear!");
else
throw ex;
}
} catch (NoAlertPresentException e) {
System.out.println("There is no alert appear!");
}
return flag;
}
方法返回值为,调用出是否出现了alert。
参数列表中第二个参数option为期望对alert的处理方式(true:ok/false:cancle)
在selenium2.20及以上版本中,增加了alertIsPresent方法。 也可以将这个方法替换上面的内容。用于捕获alert。
相关文章推荐
- WebDriver(Selenium2) 处理可能存在的JS弹出框
- python selenium-webdriver 处理JS弹出对话框(六)
- python selenium-webdriver 处理JS弹出对话框
- Selenium webdriver处理alert、confirm弹出框
- Selenium Webdriver中如何处理浏览器弹出多个窗口的问题
- selenium_webdriver(python)下拉列表、下拉框和js弹窗警告处理
- java selenium webdriver处理JS操作窗口滚动条
- Selenium webdriver 处理alert、confirm弹出框
- 【selenium webdriver】处理Windows弹出窗口(window handles)
- selenium webdriver学习(六)------------如何得到弹出窗口
- selenium webdriver 不识别showModalDialog()的处理方案
- selenium webdriver java处理上传
- selenium-webdriver(python) (十三) -- cookie处理
- WebDriver(Selenium2) 常见异常及处理方法
- Selenium Webdriver处理iFrame之间的切换问题
- Selenium+Webdriver学习(三) 执行JS脚本
- Selenium WebDriver 处理cookie
- Selenium2(WebDriver)_如何判断WebElement元素对象是否存在
- selenium webdriver学习(十四)------------如何处理table
- selenium web driver 使用JS修改input属性