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

Java の Selenium WebDriver 内で JavaScript コードを実行するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-24 21:23:29309ブラウズ

How can I execute JavaScript code within Java's Selenium WebDriver?

Selenium WebDriver Java で JavaScript を使用する

あなたは、Java を介して WebDriver (Selenium 2) で JavaScript を利用することに興味があります。

コマンドの実行場所

参照したコマンド「$ ./go webdriverjs」は、WebDriverJs プロジェクトが配置されているディレクトリから実行する必要があります。

WebDriver への JavaScript の統合

ただし、WebDriverJs は 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>

または、

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

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

executeScript() メソッドは、関数呼び出しとプレーン JavaScript コードの両方を受け入れます。次の例に示すように、値を返し、複雑な引数を渡す機能を提供します。

  1. WebElement を返す:
<code class="java">js.executeScript("return document.getElementById('someId');");</code>
  1. 境界線を追加するWebElement:
<code class="java">WebElement element = driver.findElement(By.anything("tada"));
js.executeScript("arguments[0].style.border='3px solid red'", element);</code>
  1. 入力要素をラジオ ボタンに変更します:
<code class="java">js.executeScript(
         "var inputs = document.getElementsByTagName('input');" +
         "for(var i = 0; i < inputs.length; i++) { " +
         "    inputs[i].type = 'radio';" +
         "}" );</code>

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

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