【发布时间】:2011-12-17 02:17:42
【问题描述】:
我遇到了以下问题: 我正在使用带有 Browserversion Firefox_3_6 的 HtmlUnitDriver 运行带有 Selenium 2.9 的 JUnit 测试用例。 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") 我的测试有效,但这不是正确的方法。
【问题讨论】:
-
您是否添加了一些时间跨度以在请求包含此 java 脚本的页面后等待。 HtmlUnitDriver 接缝需要比 FireFoxDriver 更明确的等待?
-
我将驱动程序设置为隐式等待 10 秒: driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);已经尝试过其他的等待方式,效果是一样的
标签: java javascript ajax selenium htmlunit-driver