gpt4 book ai didi

gwt - HtmlUnitDriver 的可靠性如何?

转载 作者:行者123 更新时间:2023-12-04 07:44:22 25 4
gpt4 key购买 nike

显然,这个问题的答案取决于许多环境因素。

总的来说,我想知道人们对 HtmlUnitDriver 的体验如何。作为一种可靠的工具,可以像其他浏览器一样“信任”浏览网站。

当然,我意识到“其他浏览器的做法”非常模糊。自然每个浏览器都会有它的怪癖。但是我在一个项目中,我们有数百个验收测试场景(用 JBehave 编写)并使用 FirefoxDriver InternetExplorerDriver ,运行所有这些需要两个多小时,从持续集成的角度来看,这有点粗糙。所以我想知道我们是否可以将验收测试转换为使用 HtmlUnitDriver并期望在几乎相同的行为下更快的时间(也许我们可以期望使用 HtmlUnitDriver 的少数测试会失败,并专门使用基于浏览器的驱动程序运行这些测试)。

我们的 UI 使用 GWT ,这可能会使事情复杂化,也可能不会(我不知道)。

基本上,根据其他人的经验,HtmlUnitDriver与其他浏览器一样好操作,还是真的只适用于非常简单的 HTML 网站,只有最少的 JavaScript,不应该用于企业 Web 应用程序?

最佳答案

根据我使用 HtmlUnitDriver 的经验,我会说,如果您在编写测试时不将其用作基准浏览器,那么将它们转换为使用它会成为一场噩梦。对于 javascript 繁重的网站尤其如此。

主要原因是 htmlunit 的明显底层使用,默认情况下,它使用 Rhino javascript 引擎。在过去,我总是必须指定 HtmlUnitDriver 使用 Firefox 的 javascript 引擎启动 htmlunit。这在很大程度上解决了我在使用 HtmlUnitDriver 运行测试时发现的 javascript 问题。

在为每个浏览器使用相同的测试代码时,我遇到的最大问题之一是,在被测站点上,UI 开发人员是否分配了 JavaScript 事件,例如 onClick()。到 html 元素,例如 <span> .

原因是如果你使用 WebDriver 的 .click()表示 <span> 的 WebElement 上的方法, 然后 htmlunit 不会做任何事情(它期望在 onClick() 等元素上调用 <input> )。
为了解决这个问题,我不得不手动调用 click() javascript 中的事件。您可以通过使用 WebDriver 的 JavascriptExecutor 或使用 WebDriverBackedSelenium 和 Selenium 的 .fireEvent() method 来执行此操作。 .

因此,如果您的网站使用此类事件,那么我会说切换到使用 HtmlUnitDriver 可能是一项艰巨的任务。

尽管如此,我实际上在所有测试中都使用了 HtmlUnitDriver。然而,不久前我经历了发现上述所有内容的痛苦,所以现在在编写测试时使用 HtmlUnitDriver 作为我的基线浏览器。

关于gwt - HtmlUnitDriver 的可靠性如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5346466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com