org.openqa.selenium.UnhandledAlertException:存在模态对话框:

时间:2016-04-29 14:58:09

标签: java file-upload selenium-webdriver

我想在不使用Auto it工具的情况下从本地上传文件。所以我用Action event点击了Browse按钮。我正在使用sendKeys通过以下代码发送文件的路径:

"driver.findElement(By.xpath("//input[@type='file']")).sendKeys("path of file");"

我收到"org.openqa.selenium.UnhandledAlertException: Modal dialog present: "错误。

我无法处理此异常。

请有人帮我这样做......

1 个答案:

答案 0 :(得分:0)

您必须先关闭发送密钥之前的警报。你可以这样做:

Alert alert = driver.switchTo().alert();
// Prints text and closes alert
System.out.println(alert.getText());
alert.accept(); // or alert.dismiss(); 

或者如果你不需要你可以做的消息

alert.accept();

修改

另一种方法是将代码包装在try-catch中:

try{
  driver.findElement(By.xpath("//input[@type='file']")).sendKeys("path of file");
} catch(UnhandledAlertException e){
  Alert alert = driver.switchTo().alert();
  alert.accept();
  driver.findElement(By.xpath("//input[@type='file']")).sendKeys("path of file");
}

这显然是一个肮脏的解决方案,但您可以使用它来检查上面的代码是否适合您。然后你可以根据自己的需要自己清理它。