1

私は初めてセレンを試していますが、簡単な質問があります。click()でメソッドを呼び出すと、タイプメソッドWebElementであることに気付きました。voidではHtmlUnitDriver、発生後にレンダリングされる更新されたページを保持しますclick()か?

4

2 に答える 2

0

はい。インターフェイスはブラウザを制御していますが、ほとんどの作業を実行し、ページの状態などを記憶しているのはブラウザ(このWebDriver場合はHtmlUnit)です。

したがって、それWebDriver自体は実際には状態を持っていません(過度に単純化されたステートメントですが、あなたの目的には当てはまります)。コマンドを送信するclick()と、ブラウザでコマンドが実行され、ブラウザがジョブを完了する(新しいページをロードする)のを待ってから、新しいページでコマンドを再度待機します。

WebDriver常にブラウザが現在持っているもので動作します。

于 2013-03-03T00:01:12.197 に答える
0

あなたの質問から、HtmlUnitDriver を使用していることがわかります。このドライバーでは、デフォルトで JavaScript が無効になっています (説明については、ここをクリックしてください)。このドライバーは Rhino JavaScript エンジンを使用しており、一般的なブラウザーでは使用されていません。これは、試しているアクションが Firefox では正常に機能するのに Selenium では機能しない理由を説明している可能性があります。

次のように、HtmlUnit で JavaScript を有効にしてみてください。

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

ただし、代わりに FirefoxDriver を使用することをお勧めします。

WebDriver driver = new FirefoxDriver();

これは、Web ページを自分でナビゲートするときに表示される動作をエミュレートする必要があります。

于 2013-03-04T16:58:32.860 に答える