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

Selenium 警报处理+;Java+;网络驱动程序,selenium,webdriver,Selenium,Webdriver,我试图使用开关发出警报并执行操作,但我遇到了错误 现在真正的问题是,当我把下面的代码放到try,catch中时,它可以完美地工作。我的意思是它能完美地处理警报。但是,当我不使用try,catch代码而使用相同的代码时,它会抛出以下异常 Alert alert = driver.switchTo().alert(); String AlertText = alert.getText(); System.out.println(javascriptconfirm.getT

我试图使用开关发出警报并执行操作,但我遇到了错误

现在真正的问题是,当我把下面的代码放到try,catch中时,它可以完美地工作。我的意思是它能完美地处理警报。但是,当我不使用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)

其思想是,在处理警报时,必须首先检查警报是否存在。 我将采用这种方法:

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;

 }
您还可以获得详细信息—不要忘记一步一步地调试,以了解出现/未出现的步骤警报。
希望这对您有所帮助。

正确。我之前使用了相同的方法(try/catch),并且能够完美地处理它。只是想知道当你不使用try/catch语句时会出现什么问题。我将此标记为一个答案,以添加更多的含义,并标记这是处理它的一种方式。谢谢