2
我有这样的网页代码:的HtmlUnit等待onclick事件
<a id="btn">Click</a>
<script>
$('document').ready(function() {
$('#btn').click(function() {
...
location.search = $.params({click: '1'});
});
});
</script>
在Chrome代码工作完美。
但我想用HtmlUnit进行测试。我写道:
page= (HtmlPage) ((HtmlAnchor) page.getDocumentElement().querySelector("#btn")).click();
assertThat(page.getUrl().getQuery(), containsString("click=1"));
此代码随机工作。有时测试通过,有时失败。 我认为这是因为JS的异步调用,但我无法解决它。
那么我该如何测试它?
此外,有更好的解决方案来测试网站insted HtmlUnit? HtmlUnit失望...
我不会在代码中使用AJAX,如代码中所示... – nrofis
好点。我假设你在你的'...'中执行AJAX调用。无论哪种方式,如果它是异步的,那么你可以用同样的方式处理它。现在我看到了什么可能是问题:'location.search'正在执行另一个HTTP请求。所以你应该等待请求完成。再次,这应该像我在另一个问题中解释的那样,通过应用手动延迟 –
否,在'...'代码中它仅仅用于设置变量。这个功能没有更多的动作。 – nrofis