我感到绝望。我正在使用Selenium 2.42.2和phantomjsDriver 1.1.0,在Eclipse中使用Java。对于我的测试,识别和存储警报、确认和可能的提示消息是至关重要的,当我打开一个页面时。然而,phantomjsDriver尚未实现它,因此我需要通过JavascriptExecutor进行变通。但我是一个JavaScript新手,无法独立完成。以下是我的代码和我尝试过的内容:
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”