- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
显然,这个问题的答案取决于许多环境因素。
总的来说,我想知道人们对 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/
显然,这个问题的答案取决于许多环境因素。 总的来说,我想知道人们对 HtmlUnitDriver 的体验如何。作为一种可靠的工具,可以像其他浏览器一样“信任”浏览网站。 当然,我意识到“其他浏览器的做
我无法让 HtmlUnitDriver 在我尝试访问的页面上查找元素。另一方面,WebDriver 工作正常。两者都使用相同的方法。这是我的代码: import java.util.logging.*
我是这方面的新手,基本上我正在尝试使用 HtmlUnitDriver,这是我的代码: WebDriver driver = new HtmlUnitDriver(); driver.get("http
我创建了一个简单的工厂方法,它以指定的模式创建 HtmlUnitDriver。例如 public static HtmlUnitDriver createHtmlUnitDriver(String b
我在 Java 中使用 HtmlUnit 来处理下拉窗口 (Java)。 我按照用户 skaffman 的建议进行了尝试: WebDriver driver = new HtmlUnitDriver(
我使用 selenium-java-2.32.0 我之前使用过 selenium,但从未使用过 HtmlUnitDriver。 有一个html页面,让它成为localhost/mainPage 我创建
我的问题是如何执行单击元素以从服务器响应获取数据?算法: 1) 单击 div 元素 TEXT1 2) 向服务器发送请求 3) 服务器发送带有修改文本的响应。所以我需要获取修改
我正在尝试让 HtmlUnitDriver 在我的开发环境中工作。作为初学者,我尝试使用最新的 selenium 服务器 jar 从下一页实现示例: http://code.google.com/p/
我正在使用 HtmlUnitDriver 打开链接。这是我的代码: HtmlUnitDriver webDriver = new HtmlUnitDriver(); webDriver.get("so
我有几个使用 Selenium 和 HtmlUnitDriver 运行的测试。有时,当我运行它们并想要单击某个元素或阅读文本时,无法找到该元素。每次抛出异常时,我都会保存页面的代码以用于调试目的。但是
HtmlUnitDriver 在等待页面加载时使用的默认超时是多少? 我可以调用 HtmlUnitDriver API 中的哪些函数来获取超时值? HtmlUnitDriver h = new Htm
我得到未知主机作为 driver.getPageSource() 的返回 public static void main(String[] arg) { HtmlUnitDriver driver =
我得到这样的东西 您好,我正在使用 Selenium Webdriver 抓取网页,我能够获取我的数据,但问题是这直接与浏览器交互,我不想打开 Web 浏览器,而是想按原样抓取所有数据 我怎样才能实现
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 9 年前。 Improve th
如何使用 HtmlUnitDriver 捕获屏幕截图?我发现当我使用 FirefoxDriver 时可以捕获,但我不想使用 Firefox。因此,请让我知道如何使用 HtmlUnitDriver 捕获
我正在尝试使用 HtmlUnitDriver 登录 marketwatch.com 。我认为该程序永远不会超过登录提示,并且我确实检查了我的电子邮件和密码是否正确...... 非常感谢您愿意帮助我!
我正在为类似于 Ad.fly 的页面开发一个机器人。打开链接后,我想等待五秒钟让页面加载,然后才会出现要单击的按钮。 我想用 HtmlunitDriver 执行它。我尝试了隐式等待和显式等待,但这没有
我的目的是为测试自动化执行 headless 浏览。我在 Java 中使用 selenium webdriver。 现在,问题是脚本在 Firefox 浏览器中运行良好,但在 HtmlUnitDriv
我尝试使用 `driver.get(url) 打开网站: driver = new HtmlUnitDriver(BrowserVersion.CHROME); driver.setJ
我使用 SeleniumHQ 记录我的操作,然后将它们导出到 Java Unity WebDrive。然后我编辑了导出的代码并添加了许多额外的小东西,比如遍历数组、时间戳等。 我的代码执行以下操作:
我是一名优秀的程序员,十分优秀!