0

我的程序遇到确认框时失败。我需要单击该确认框才能继续。我无法深入研究它的 Html(使用萤火虫)左右。有人请让我知道如何处理这种情况?即使这样也没有用

enter code here
DesiredCapabilities capabilities;
capabilities = new DesiredCapabilities();
capabilities.setJavascriptEnabled(true);
capabilities.setCapability("takesScreenshot", false);
capabilities.setCapability(
PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY,
            "/usr/local/bin/phantomjs");
WebDriver myTestDriver = new PhantomJSDriver(capabilities);
myTestDriver.manage().window().maximize();
myTestDriver.findElement(By.xpath("//input[@value = 'confirm']")).click();
try {
Thread.sleep(2000L);
} catch (InterruptedException e) {  
    e.printStackTrace();
}
Alert javascriptconfirm = myTestDriver.switchTo().alert();
javascriptconfirm.accept();

Selenium Web 驱动程序:使用 Java 处理确认框

提前致谢

4

1 回答 1

1

Phantom 目前不处理开箱即用的警报和确认对话框(请参阅此处)。

在 Phantom & Ghostdriver 实现原生支持之前,解决方法是注入 javascript 来处理警报或确认自己。

这是一段 C# 代码,假设您要模拟用户在确认对话框中单击“确定”:

string script = "window.confirm = function(message) { lastConfirmationMessage = message; return true; }";
IJavaScriptExecutor executor = (IJavaScriptExecutor) Driver;
executor.ExecuteScript(script);

然后,如果您想断言文本符合预期,则可以执行其他 javascript 来检索“lastConfirmationMessage”。

于 2013-09-24T00:03:58.647 回答