ホームページ  >  記事  >  Java  >  Java で WebDriver を使用して JavaScript コードを実行するにはどうすればよいですか?

Java で WebDriver を使用して JavaScript コードを実行するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-24 18:46:21894ブラウズ

How to Execute JavaScript Code with WebDriver in Java?

Java の WebDriver を使用した JavaScript の実行

Java を使用して JavaScript を WebDriver (Selenium 2) と統合すると、強化されたテスト機能が提供されます。 「はじめに」ページに記載されているガイドラインに従って、「./go webdriverjs」コマンドをどの場所から実行するかを理解することが重要です。

答え:

実行「./go webdriverjs」コマンドは、特定のフォルダーから実行する必要はありません。このコマンドは通常、JavaScript でテストを作成できる WebDriver の追加言語バインディングである WebDriverJs を使用して JavaScript テストを実行する場合に使用されます。

ただし、目的が Java の WebDriver 内から JavaScript コードを実行することである場合、アプローチが異なります。 Java WebDriver コードで JavaScript スニペットを実行するには、以下を利用します:

<code class="java">WebDriver driver = new AnyDriverYouWant();
if (driver instanceof JavascriptExecutor) {
    ((JavascriptExecutor)driver).executeScript("yourScript();");
} else {
    throw new IllegalStateException("This driver does not support JavaScript!");
}</code>

または、後で使用するために JavascriptExecutor を変数に割り当てることもできます:

<code class="java">WebDriver driver = new AnyDriverYouWant();
JavascriptExecutor js;
if (driver instanceof JavascriptExecutor) {
    js = (JavascriptExecutor)driver;
}

// later on...
js.executeScript("return document.getElementById('someId');");</code>

executeScript()このメソッドは関数呼び出しと生の JS を受け入れ、Web 要素を操作してページを操作できるようにします。例:

  • ID で要素を検索:

    <code class="java">js.executeScript("return document.getElementById('someId');");</code>
  • 要素に境界線を追加する要素:

    <code class="java">WebElement element = driver.findElement(By.anything("tada"));
    js.executeScript("arguments[0].style.border='3px solid red'", element);</code>
  • すべての入力要素をラジオ ボタンに変更します:

    <code class="java">js.executeScript(
              "var inputs = document.getElementsByTagName('input');" +
              "for(var i = 0; i < inputs.length; i++) { " +
              "    inputs[i].type = 'radio';" +
              "}" );</code>

以上がJava で WebDriver を使用して JavaScript コードを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。