我正在尝试通过自动接受任务来自动化ServiceNow网页。
事件顺序:
1.直接在记录上点击"接受任务">
2。出现一个警报框,要求我确认,我点击了"确定"按钮。
3.页面开始刷新,现在出现第二个警报框,指出任务已被接受。
我尝试过的:
- 我可以使用
driver.switchTo().alert.accept()
,但按步骤做同样的事情 3 抛出org.openqa.selenium.UnhandledAlertException:意外警报打开 - 使用
thread.sleep()
没有帮助 - 使用
driver.switchTo().defaultcontent()
也没有帮助
我 - 可以使用 JavaScript 执行器覆盖和关闭警报,但这不是我想要的,因为我也需要警报文本(https://github.com/seleniumhq/selenium-google-code-issue-archive/issues/27(
// this does the trick of overriding and closing the 2nd alert box, but I need the alert text as well and hence need a better solution```
我写了什么:
//handling Alert #1
if(driver.switchTo().alert().getText().equalsIgnoreCase("Are you sure you want to accept this task?"))
{
driver.switchTo().alert().accept(); //successfully handled Alert #1
System.out.println("accepted");
}
Thread.sleep(3000);
driver.switchTo().defaultContent();
//Handling Alert #2
if(driver.switchTo().alert().getText().endsWith("has been accepted"))
{
System.out.println(driver.switchTo().alert().getText());
driver.switchTo().alert().accept(); //failed to handle Alert #2
}
问题的可能原因: 加载页面时会出现第二个警告框。
希望这次我已经说清楚了。请帮助如何获取第二个警报框的文本并将其关闭,因为文本决定了后面部分的逻辑。
Alert alert = driver.switchTo().alert();
alert.getText();
您可以使用此方法