一尘不染

警报处理+ Java +网络驱动程序

selenium

我正在尝试使用switch来发出警报并执行操作,但是我遇到了错误。

现在真正的问题是当我将下面的代码放入try中时,catch可以正常工作。我的意思是它可以完美地处理警报。但是当我不经尝试使用相同代码时,捕获代码将引发以下异常

  Alert alert = driver.switchTo().alert();
            String AlertText = alert.getText();
System.out.println(javascriptconfirm.getText());
            alert.accept();

请在下面找到错误

No alert is present (WARNING: The server did not provide any stacktrace information)

阅读 246

收藏
2020-06-26

共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;

 }

在这里您可以获得详细信息,也不要忘记逐步调试以了解出现/不出现警报的步骤。希望这对您有所帮助。

2020-06-26