我正在尝试自动化一个具有jquery甜蜜警报的网站的流程。 当我使用 HtmlUnitDriver 进行无头浏览器测试时,甜蜜的警报被认为是不可见的。 因此,当我尝试执行 javascript 以将div 显示更改为"块"时,我遇到了一些异常。
HtmlUnitDriver driver = new HtmlUnitDriver(BrowserVersion.CHROME);
driver.setJavascriptEnabled(true);
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.get("https://www.someurl.com");
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("document.getElementById('dummy').style.display= 'block';");
WebElement dummy = driver.findElement(By.id("dummy"));
System.out.println("dummy is displayed?:"+dummy.isDisplayed());
HtmlUnit 2.18 with Selenium Webdriver 2.48.2 的异常:
org.openqa.selenium.WebDriverException: com.gargoylesoftware.htmlunit.ScriptException: TypeError: Cannot find function createHTMLDocument in object [object DOMImplementation]
这个特殊问题已通过 HtmlUnit 2.22 修复,但通常您必须切换到最新版本(目前为 2.27(。