点击使用selenium的浏览器确认框

时间:2013-05-03 15:22:04

标签: javascript selenium phantomjs ghostdriver

我的程序在遇到确认框时失败。我需要单击该确认框才能继续。我无法深入研究它的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

先谢谢

1 个答案:

答案 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”。