在Selenium Web Driver中处理警报后如何切换回主窗口

时间:2013-09-27 08:48:33

标签: selenium alerts

我必须编写一个selenium自动化测试脚本,其中test必须创建一个模板,填写表单中的Generalize数据并手动输入特定的详细信息(尝试等到手动输入完成后),然后单击SAVE按钮。但是,如果剩下一些必填字段,系统会显示JavaScript的验证警报。我通过使用处理此警报      警报警报= driver.switchTo()。alert();       alert.accept(); 在此之后我想回到主页并等待几分钟来编写缺失字段的描述,然后点击SAVE按钮。

我如何在Selenium网络驱动程序中实现这一目标?

4 个答案:

答案 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的问题时,切换回父窗口就会出现。

希望这有帮助。