HtmlUnit不等待AJAX​​执行

时间:2012-01-30 16:05:56

标签: .net testing automation htmlunit ikvm

我正在尝试在.Net中使用无头浏览器,我需要它来执行JavaScript,因为我需要用它读取的信息是通过AJAX加载的。经过一些研究,我相信我最好的选择是HtmlUnit。我已经按照Steven Sanderson的博客http://blog.stevensanderson.com/2010/03/30/using-htmlunit-on-net-for-headless-browser-automation/中的说明进行了操作。但是,尽管我努力尝试,但我无法等待JavaScript加载。基本上,在从选择框中选择某些内容后,AJAX请求将触发并填充另一个选择框。 HtmlUnit永远不会看到新选项。

我已经尝试了常见问题解答http://htmlunit.sourceforge.net/faq.html#AJAXDoesNotWork中所有示例的组合,因此我只能假设它已被转换为在.Net中运行的事实存在问题。我希望有人在这方面有一些经验可以解决什么是错的。我觉得我使用HtmlUnit是正确的方式,并且在Is there a headless browser for .NET (for automated Web-UI-Tests)?headless internet browser?之前已经推荐了它,但我已经走到了尽头。

因此,如果有人有更好的选择支持JavaScript的headles浏览器,以及如何让HtmlUnit等待JavaScript的想法,或者甚至只是关于如何进一步调试的建议。

感谢。

西蒙

1 个答案:

答案 0 :(得分:4)

我认为您需要使用webClient.waitForBackgroundJavaScript()webClient.waitForBackgroundJavaScriptStartingBefore()

您还可以看到这些可能对您有所帮助的链接。

  1. HTMLUnit doesn't wait for Javascript
  2. HtmlUnit doesn't load externally referenced javascript
  3. htmlunit javascript question