2

我正在尝试在 .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 时走的是正确的道路,并且之前已在此处推荐过.NET 的无头浏览器(用于自动 Web-UI-Tests)吗?无头互联网浏览器?但我已经走到了死胡同。

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

谢谢。

西蒙

4

1 回答 1

4

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

您还可以查看这些可能对您帮助不大的链接。

  1. HTMLUnit 不等待 Javascript
  2. HtmlUnit 不加载外部引用的 javascript
  3. htmlunit javascript问题
于 2012-03-29T06:00:11.110 回答