14

次の問題が発生しました: Browserversion Firefox_3_6 で HtmlUnitDriver を使用して、Selenium 2.9 で JUnit testCase を実行しています。JavaScript が有効になっています。次の JavaScript 関数を呼び出して実行する必要がある場合、何もしません。

function openIdsDocument()
{
    var windowBounds = getWindowBounds();
    var XMLHTTP = getAjaxRequestObject("XYZ.do?availableWidth="+windowBounds.width+"&availableHeight="+windowBounds.height, "", true);
    if (XMLHTTP != null)
    {
            XMLHTTP.onreadystatechange = function alertAJAXResponse()
            {
                    if (XMLHTTP.readyState == 4)
                    {
                            window.location.href = getContextPath() + "ABC.do";
                    }
            };
            XMLHTTP.send("timestamp=" + <%=System.currentTimeMillis()%>);
    }
    getLoadingState();
}

ABC.doに行きたい

FirefoxDriver でテストを実行すると、動作します。

これを HtmlUnitDriver で動作させる方法はありますか? 手動で driver.get(" http://host/ABC.do ") を呼び出すとテストは機能しますが、これは正しい方法ではありません。

4

5 に答える 5

21

JavaScript を有効にするには、次のいずれかを行います。

  • new HtmlUnitDriver(true);
  • driver.setJavascriptEnabled(true);

後は JavaScript が実行されるまで待つ必要がありますget(url)

メソッドを使用Thread.sleep()して遅延を追加できます。

HtmlUnitDriver driver = new HtmlUnitDriver(BrowserVersion.FIREFOX_3_6);
driver.setJavascriptEnabled(true);
driver.get(url);

Thread.sleep(100);

runTest();

アップデート

@Corey がコメントで示したように、代わりにExplicit および Implicit WaitsThread.sleep()を使用する方が適切な場合があります。最近は使っていないので確認できませんが。誰かがそれらをテストして、この回答を更新してくれれば幸いです。

于 2012-05-30T05:48:23.927 に答える
6

をenablejavascriptで初期化する必要がありますHtmlUnitDrivertrue

new HtmlUnitDriver(true);
于 2011-10-28T07:24:58.873 に答える
4

を設定し、BrowserVersionHtmlUnitDriver で Javascript を有効にする場合は、初期化を次のようにする必要があります (コンストラクターを介して両方を行う方法はないため)。

HtmlUnitDriver driver = new HtmlUnitDriver(BrowserVersion.FIREFOX_3_6);
driver.setJavascriptEnabled(true);

これにより、選択したブラウザー定義を使用し、Javascript を使用できるようになります。

于 2012-02-15T17:25:41.477 に答える
3

これを行う必要がある場合があります。

WebDriver driver = new HtmlUnitDriver(BrowserVersion.INTERNET_EXPLORER_8);
((HtmlUnitDriver) driver).setJavascriptEnabled(true);
于 2012-06-20T08:40:33.693 に答える