我正在尝试在.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的想法,或者甚至只是关于如何进一步调试的建议。
感谢。
西蒙
答案 0 :(得分:4)
我认为您需要使用webClient.waitForBackgroundJavaScript()
或webClient.waitForBackgroundJavaScriptStartingBefore()
。
您还可以看到这些可能对您有所帮助的链接。