【发布时间】:2018-05-23 06:18:55
【问题描述】:
我正在使用 Selenium Web 驱动程序导航到一个页面。我正在使用 HtmlUnitDriver 进行无头测试(没有 GUI)。这是我的简单代码:
/*
* Create web driver object
*/
WebDriver webDriver = new HtmlUnitDriver(){
//@override
protected WebClient getWebClient() {
WebClient webClient = super.getWebClient();
//webClient.getCache().setMaxSize(0);
//webClient.getOptions().setUseInsecureSSL(true); //ignore ssl certificate
webClient.getOptions().setThrowExceptionOnScriptError(false);
webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
webClient.getOptions().setPrintContentOnFailingStatusCode(false);
webClient.getOptions().setJavaScriptEnabled(true);
webClient.getOptions().setCssEnabled(true);
webClient.setCssErrorHandler(new SilentCssErrorHandler());
webClient.getOptions().setRedirectEnabled(true);
//webClient.getOptions().setTimeout(10000);
return webClient;
}
};
现在我正在导航到一个页面 - http://google.com
long startTime = System.currentTimeMillis();
webDriver.get("http://google.com");
long timeTaken = System.currentTimeMillis() - startTime;
System.out.println(Thread.currentThread().getName()+" Result:: Title: "+webDriver.getTitle()+" Current URL: "+webDriver.getCurrentUrl()+" Time taken(ms): "+timeTaken);
我发现导航到上述网址所花费的时间约为 3 秒
如果 JavaScript 被禁用为 webClient.getOptions().setJavaScriptEnabled(false);,则大约需要 ~1 秒
在启用了 javascript 的浏览器上,当我导航到 http://google.com 而没有任何先前的缓存时,大约需要 1 秒。
现在我的问题是为什么在代码中启用 javascript 需要额外的时间,以及我需要做哪些代码更改来消除保持启用 javascript 的额外时间。这也发生在其他网站上。
任何帮助将不胜感激。谢谢
【问题讨论】:
标签: java selenium selenium-webdriver webdriver htmlunit