我越来越绝望了。我在 Eclipse 中使用 Selenium 2.42.2 和带有 Java 的 phantomjsDriver 1.1.0。对于我的测试,我必须在打开页面时识别并存储警报和确认消息,也许还有提示。phantomjsDriver 还没有实现它,所以我需要一个 JavascriptExecutor 的解决方法。但我是一个js菜鸟,不能单独管理它。这是我的代码和我尝试过的:
DesiredCapabilities dcaps = new DesiredCapabilities();
String[] phantomArgs = new String[] {
"--webdriver-loglevel=NONE"};
dcaps.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
dcaps.setCapability(CapabilityType.SUPPORTS_ALERTS, true);
dcaps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY,
phantomjs.getAbsolutePath());
dcaps.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS, phantomArgs);
dcaps.setJavascriptEnabled(true);
WebDriver driver = new PhantomJSDriver(dcaps);
JavascriptExecutor js=(JavascriptExecutor) driver;
String script = "window.confirm = function(message) {"+
"document.lastConfirmationMessage = message; return true; }";
js.executeScript(script);
driver.get("http://www.mysiteWithConfirm.de");
Object message = js.executeScript("return document.lastConfirmationMessage");
当我打开我的网站时,它会立即打开确认提示,所以我知道有一个确认。但我只是得到例外
错误消息 => '找不到变量:lastConfirmationMessage'