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