selenium webdriver modal dialog java
selenium webdriver modal dialog java
我正在测试我的表单,当我不输入所需的数据时,我会在我的Web应用程序中收到javascript警报,告诉用户输入丢失的数据。我无法用硒处理这个问题,因为当我部分填写表格并尝试提交时,我得到异常
org.openqa.selenium.UnhandledAlertException: Modal dialog present
如果我发现异常,则不会显示网络驱动程序中的警报。这是解决此问题的任何解决方案吗?我希望能够提交表格并捕获警报。我正在使用Linux Mint,Firefox 18和Selenium 2.28.0与java此致敬意更新我的代码中有以下内容
somePage.fillName(sth); //only 1 of 2 required field are filled
somgePage.submit(); //here js alert is shown right after clicking submit
somePage.getCurrentAlert();
//here are code parts
public Alert getCurrentAlert(){
return driver.switchTo().alert();
}
public AdminHome submit(){
saveUrl();
WebElement submit = driver.findElement(By.id("add_quiz_submit_button"));
try{
submit.click();
if(urlChanged()){
return new AdminHome(driver);
}
}
catch(Exception e){
e.printStackTrace();// exception 1
return null;
}
return null;
}
//Exception 1
org.openqa.selenium.UnhandledAlertException: Modal dialog present
//The test fails because of:
org.openqa.selenium.NoAlertPresentException: No alert is present (WARNING: The server did not provide any stacktrace information)
但是,如果我按预期单击手动提交测试工作。提前致谢
应在
操作完成后立即处理警报,并且在处理警报之前不应有任何其他操作。
例如,您的代码应该是
try{
submit.click();
if (alertPresent())
getCurrentAlert();
if(urlChanged()){
return new AdminHome(driver);
}
}
这将检查警报,然后接受警报。Web驱动程序的交互更类似于我们与浏览器手动交互的操作。因此,当单击提交完成后,我们将能够看到警报,并且在接受或拒绝它之前无法执行任何操作。
维沙尔
这是因为当引发UnhandledAlertException时,驱动程序本身接受警报。如果您部分填写了表格,如何提交表格?
如果可能的话,只需捕获该异常,并在 catch 块中写入单击提交按钮的行。
使用机器人类(按回车键)关闭模式对话框
try {
(new Robot()).keyPress(java.awt.event.KeyEvent.VK_ENTER);
(new Robot()).keyRelease(java.awt.event.KeyEvent.VK_ENTER);
} catch (AWTException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
相关文章:
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 借助asp.net验证或java脚本对多个文本进行验证
- java.net和javascript之间正则表达式的差异
- 如何从Java/scala调用js美化程序
- 如何使用json将对象列表从java转换为javascript
- Java脚本时间添加
- WebDriverException:tinyMCE未在selenium Web driver java中定义
- 如何将字符串值从php页面发送到java脚本页面
- 如何使用Spring MVC将Facebook返回的响应数据保存在Java类中
- 如何轻松地将服务器端变量从Java代码转移到客户端代码
- DOM事件通过JSON转换为java
- 在 Java 中的 JavaScript 函数中插入 Wicket 值
- JSON分析错误:Java中AJAX、Javascript和Servlet的意外EOF
- java脚本在Chrome和其他浏览器中对LocaleTimeString的不同行为
- 错误405:向Java控制器(Ajax)发送JSON时找不到POST方法
- Java-彩票统计解析器
- 如何将变量数据从Java类获取到JavaScript
- Java脚本将URL转换为已保存的URL时出错
- 关闭 DIalog 后释放 Java Applet
- selenium webdriver modal dialog java