JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

Selenium WebDriverでJavaScript変数を読み取る方法


Selenium WebDriverを使用すると、ページ内のJavaScript変数の値を読み取ることができます。SeleniumはexecuteScriptメソッドを利用してJavaScriptのコマンドを実行します。実行したいJavaScriptのコードは、このメソッドの引数として渡します。また、JavaScriptを扱う場合は、import org.openqa.selenium.JavascriptExecutorというステートメントを追加する必要がある点に注意してください。

構文

JavascriptExecutor j = (JavascriptExecutor) driver;
j.executeScript("return document.title")

ここでは、JavaScript変数から値を読み取ることで、ページのブラウザタイトルを取得する例を紹介します。取得できるタイトルはAbout Careers at Tutorials Point – Tutorialspointです。

Selenium WebDriverでJavaScript変数を読み取る方法

コード例

実装コードは以下のとおりです。

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.JavascriptExecutor;
public class JavascriptReadValue{
    public static void main(String[] args) {
        System.setProperty("webdriver.chrome.driver", "C:\\Users\\ghs6kor\\Desktop\\Java\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();
        driver.get("https://www.tutorialspoint.com/about/about_careers.htm")
        driver.manage().timeouts().implicitlyWait(12, TimeUnit.SECONDS);
        // 値を読み取るためのJavascriptExecutor
        JavascriptExecutor j = (JavascriptExecutor) driver;
        // document.titleでページタイトルを取得
        String t = (String)j.executeScript("return document.title");
        System.out.print("Current page title: " +t);
        driver.close();
    }
}

ポイント

  • executeScriptメソッドの戻り値はObject型のため、取得した値に応じてStringなどの適切な型にキャストして受け取ります。
  • JavaScriptのコードに「return」を付けると、実行結果をJava側に返すことができます。
  • JavascriptExecutorは、WebDriverオブジェクトをキャストして使用します。

実行結果

コードを実行すると、コンソールに現在のページタイトルが出力されます。

Selenium WebDriverでJavaScript変数を読み取る方法


  1. SeleniumでJavaScriptを含む複雑なページの読み込み完了を待つ方法

    Seleniumでは、JavaScriptを多用した複雑なページでも、読み込みが完了するまで適切に待機することができます。ページの読み込み状態を確認するには、JavaScriptのdocument.readyStateメソッドを実行し、戻り値がcompleteになるまで待つのが一般的な手法です。基本構文JavascriptExecutorを使って、現在のページの準備状態(readyState)を取得します。JavascriptExecutor js = (JavascriptExecutor)driver; js.executeScript(return document.readyState

  2. SeleniumでJavaScriptのコンソールエラーを取得・キャプチャする方法

    Seleniumでは、ブラウザ上で発生したJavaScriptのエラーを自動的にキャプチャ(取得)できます。この種のエラーは、通常、開発者ツール(Developer tools)を開いた際に表示される「Console」タブで確認できるものです。エラーの発生原因は、ページ自体の機能的な不具合の場合もあれば、余分なログ出力が積み重なってパフォーマンス問題につながっているケースもあります。テスト自動化の中でこれらのエラーを検知できれば、リリース前の品質チェックに大きく役立ちます。 JavaScriptエラーの取得方法 JavaScriptのエラーは、driverオブジェクトとmanage()メソ