我必须编写一个selenium自动化测试脚本,其中test必须创建一个模板,填写表单中的Generalize数据并手动输入特定的详细信息(尝试等到手动输入完成后),然后单击SAVE按钮。但是,如果剩下一些必填字段,系统会显示JavaScript的验证警报。我通过使用处理此警报 警报警报= driver.switchTo()。alert(); alert.accept(); 在此之后我想回到主页并等待几分钟来编写缺失字段的描述,然后点击SAVE按钮。
我如何在Selenium网络驱动程序中实现这一目标?
答案 0 :(得分:1)
首先处理警报时,您必须检查是否存在警报。我会用这种方法:
public boolean isAlertPresent() {
boolean presentFlag = false;
try {
// Check the presence of alert
Alert alert = driver.switchTo().alert();
// Alert present; set the flag
presentFlag = true;
// if present consume the alert
alert.accept();
} catch (NoAlertPresentException ex) {
// Alert not present
ex.printStackTrace();
}
return presentFlag;
了解click here中的更多内容,另外请不要忘记逐步调试以了解警报出现/未出现的步骤。希望这会对你有所帮助。
答案 1 :(得分:1)
接受警告框后。我们想通过设置窗口句柄细节来切换到主窗口。
//Stores the handle details
String windowHandle=driver.getWindowHandles();
//Alert portion
Alert alert = driver.switchTo().alert();
alert.accept();
//After switching back to main window..
driver.navigate.windows(windowHandle);
//It takes to the main window....
答案 2 :(得分:0)
您可以试试以下代码: driver.navigate.back();
答案 3 :(得分:0)
您可以使用switchTo()
方法从父窗口转到警报窗口:
<html>
Alert alrt = driver.switchTo().alert(); // Switching the control to Alert window
alrt.accept(); // to accept Yes to delete the task
//alrt.dismiss();
// to dismiss the action - once you click on YES, of course you don't have option to dismiss
</html>
现在,回答你的问题 -
一旦从“警报”窗口中选择任何选项(例如 - 是/否),控件将自动返回到父窗口或主窗口。你知道吗,隐藏的div也是如此。当它是HTML Pop up的问题时,切换回父窗口就会出现。
希望这有帮助。