我的程序在遇到确认框时失败。我需要单击该确认框才能继续。我无法深入研究它的Html(使用firebug)左右。有人请让我知道如何处理这种情况? 即使这样也行不通了
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 Driver : Handle Confirm Box using Java
先谢谢
答案 0 :(得分:1)
Phantom目前无法处理警报并确认开箱即用的对话框(参见here)。
直到Phantom& Ghostdriver实现本机支持,解决方法是注入javascript来处理警报或确认自己。
以下是一段C#代码,假设您要在确认对话框中单击“确定”来模拟用户:
string script = "window.confirm = function(message) { lastConfirmationMessage = message; return true; }";
IJavaScriptExecutor executor = (IJavaScriptExecutor) Driver;
executor.ExecuteScript(script);
如果你想断言文本符合预期,你可以执行其他javascript来检索“lastConfirmationMessage”。