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です。

コード例
実装コードは以下のとおりです。
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でJavaScriptを含む複雑なページの読み込み完了を待つ方法
Seleniumでは、JavaScriptを多用した複雑なページでも、読み込みが完了するまで適切に待機することができます。ページの読み込み状態を確認するには、JavaScriptのdocument.readyStateメソッドを実行し、戻り値がcompleteになるまで待つのが一般的な手法です。基本構文JavascriptExecutorを使って、現在のページの準備状態(readyState)を取得します。JavascriptExecutor js = (JavascriptExecutor)driver; js.executeScript(return document.readyState
-
SeleniumでJavaScriptのコンソールエラーを取得・キャプチャする方法
Seleniumでは、ブラウザ上で発生したJavaScriptのエラーを自動的にキャプチャ(取得)できます。この種のエラーは、通常、開発者ツール(Developer tools)を開いた際に表示される「Console」タブで確認できるものです。エラーの発生原因は、ページ自体の機能的な不具合の場合もあれば、余分なログ出力が積み重なってパフォーマンス問題につながっているケースもあります。テスト自動化の中でこれらのエラーを検知できれば、リリース前の品質チェックに大きく役立ちます。 JavaScriptエラーの取得方法 JavaScriptのエラーは、driverオブジェクトとmanage()メソ