
我正在使用带有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”),但不能是正确的方法来做到这一点.
> 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?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)