为什么HtmlUnitDriver不执行JavaScript?

为什么HtmlUnitDriver不执行JavaScript?,第1张

概述我遇到以下问题: 我正在使用带有Browserversion Firefox_3_6的 HtmlUnitDriver的Selenium 2.9运行JUnit testCase.启用 JavaScript现在当它调用并执行以下javaScript函数时,它什么都不做: function openIdsDocument(){ var windowBounds = getWindowBound 我遇到以下问题:
我正在使用带有browserversion firefox_3_6的 HtmlUnitDriver的Selenium 2.9运行JUnit testCase.启用 JavaScript现在当它调用并执行以下JavaScript函数时,它什么都不做:
function openIDsdocument(){    var windowBounds = getwindowBounds();    var XMLhttp = getAJAXRequestObject("XYZ.do?availableWIDth="+windowBounds.wIDth+"&availableHeight="+windowBounds.height,"",true);    if (XMLhttp != null)    {            XMLhttp.onreadystatechange = function alertAJAXResponse()            {                    if (XMLhttp.readyState == 4)                    {                            window.location.href = getcontextpath() + "ABC.do";                    }            };            XMLhttp.send("timestamp=" + <%=System.currentTimeMillis()%>);    }    getLoadingState();}

我想去ABC.do

如果我用firefoxDriver执行测试,它可以工作.

有没有办法让这个工作与HTMLUnitDriver?
我的测试工作,如果我手动调用driver.get(“http://host/ABC.do”),但不能是正确的方法来做到这一点.

解决方法 您也可以通过执行JavaScript来启用JavaScript

> new HTMLUnitDriver(true);
> driver.setJavaScriptEnabled(true);

你需要做的就是等到在get(url)之后执行JavaScript.

您可以使用Thread.sleep()方法添加一些延迟.

HTMLUnitDriver driver = new HTMLUnitDriver(browserVersion.firefox_3_6);driver.setJavaScriptEnabled(true);driver.get(url);Thread.sleep(100);runtest();

更新

正如@Corey在评论中指出的那样,使用Explicit and Implicit Waits而不是Thread.sleep()可能更好.由于这些天我不使用它们,我不能确认.如果有人测试他们并更新此答案,这将是巨大的.

总结

以上是内存溢出为你收集整理的为什么HtmlUnitDriver不执行JavaScript?全部内容,希望文章能够帮你解决为什么HtmlUnitDriver不执行JavaScript?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1098649.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存