htmlunit是否在运行它的机器上创建浏览器实例?

时间:2014-04-30 16:29:18

标签: selenium htmlunit

我正在使用htmlunit进行网页报废 - 代表用户登录网站,在其个人资料中设置内容然后返回。 只使用纯Htmlunit,没有硒框架。 现在我的问题: WebClient webClient = new WebClient(BrowserVersion.INTERNET_EXPLORER_11);

这句话是否 - 在我执行代码的机器上创建一个浏览器实例或者它做什么? 我使用的是BrowserVersion.INTERNET_EXPLORER_11,因为这是该网站上接受的浏览器。

Selenium与htmlunit的区别 - 我知道我们可以在Selenium中使用htmlunit作为webdriver。 Selenium是否需要在执行代码的机器上使用本机浏览器实例? Selenium会创建浏览器实例吗?

我的用例是 - 我将有多个用户访问此应用程序。我知道htmlunit中的WebClient不是线程安全的(因此必须将其编码为Spring proto类型bean)。 对此有什么建议吗? 非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

HTMLUnit是一个无头浏览器。因此,如果与Selenium一起使用,也不会创建窗口。设置BrowserVersion只会告诉HTMLUnit将自己呈现给服务器,就好像它是给定的浏览器一样(AFAIK,它只会更改User-Agent,但可能会执行额外的内部处理,具体取决于版本)。我想这可以回答大部分问题,但最后一个问题。

关于如何实现这一点的建议,我会尽量避免以这种方式登录网站。如果网站没有为此提供API,则可能是服务条款。假设不是,每次需要从其他站点提取数据时,您必须为每个用户创建新的WebClient实例。