8

明らかに、この質問に対する答えは、多くの環境要因によって異なります。

一般に、HtmlUnitDriver基本的に他のブラウザと同じようにウェブサイトをナビゲートするために「信頼できる」信頼できるツールとして、人々の経験はどうなっているのか疑問に思っています.

もちろん、「他のブラウザーのやり方」はかなり漠然としていることは理解しています。当然、すべてのブラウザには癖があります。しかし、私は何百もの受け入れテスト シナリオ ( JBehaveで記述) があり、 and を使用FirefoxDriverInternetExplorerDriverてすべてを実行するプロジェクトに参加しています。したがって、受け入れテストを使用するように切り替えて、ほとんど同じ動作ではるかに高速な時間を期待できることが少なくとも実現可能かどうか疑問に思っています (おそらく、少数のテストが失敗し、具体的にはブラウザーベースのドライバー)。HtmlUnitDriverHtmlUnitDriver

私たちの UI はGWTを使用していますが、これは複雑になる場合とそうでない場合があります (わかりません)。

基本的に、他の人の経験では、HtmlUnitDriver他のブラウザーと同じように動作しますか、それとも、最小限の JavaScript を使用した非常に単純な HTML Web サイトにのみ適切であり、エンタープライズ Web アプリケーションには使用しないでください。

4

1 に答える 1

8

HtmlUnitDriver を使用した私の経験から、テストを作成するときにベースライン ブラウザーとして使用しないと、それを使用するように変換するのは少し悪夢になると言えます。これは特に、JavaScript の負荷が高いサイトの場合に当てはまります。

これの主な理由は、デフォルトで Rhino JavaScript エンジンを使用する htmlunit の明らかな根本的な使用です。以前は、HtmlUnitDriver が Firefox の JavaScript エンジンを使用して htmlunit を開始するように指定する必要がありました。これにより、ほとんどの場合、HtmlUnitDriver を使用してテストを実行しているときに見つけた JavaScript の問題が解決されました。

各ブラウザーに同じテスト コードを使用する際に直面した最大の問題の 1 つは、テスト対象のサイトで、UI 開発者が などのonClick()html 要素に などの JavaScript イベントを割り当てていた場合でした<span>

.click()これは、 を表す WebElement でWebDriver のメソッドを使用した場合<span>、htmlunit は何も実行しないためです (onClick()などの要素で が呼び出されることを想定しています<input>)。これを回避するにはclick()、javascript でイベントを手動で呼び出す必要がありました。これは、WebDriver の JavascriptExecutor を使用するか、WebDriverBackedSelenium と Selenium の.fireEvent() method.

したがって、サイトでそのようなイベントを使用している場合、HtmlUnitDriver を使用するように切り替えることは大きな作業になる可能性があると言えます。

それにもかかわらず、私は実際にすべてのテストに HtmlUnitDriver を使用しています。しかし、私は少し前に上記のすべてを発見するのに苦労したので、テストを書くときのベースライン ブラウザーとして HtmlUnitDriver を使用します。

于 2011-03-27T18:53:20.767 に答える