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

Seleniumで編集ボックス(テキスト入力欄)の値を取得する方法

SeleniumでWebページ上の編集ボックス(テキスト入力欄)の値を取得したい場合、主に以下の2つの方法があります。

  • getText()メソッドを使用する方法
  • JavascriptExecutorクラスを使用する方法

方法1:getText()メソッドを使う

まずは、標準的なgetText()メソッドを使用したコード例を見てみましょう。

import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;

public class GetValueScripting {
   public static void main(String[] args) {
      System.setProperty("webdriver.chrome.driver", "C:\\Users\\ghs6kor\\Desktop\\Java\\chromedriver.exe");
      WebDriver driver = new ChromeDriver();
      String url = "https://www.tutorialspoint.com/index.htm";
      driver.get(url);
      driver.manage().timeouts().implicitlyWait(12, TimeUnit.SECONDS);
      String text = driver.findElement(By.className("gsc-input")).getText();
      System.out.println("抽出されたテキスト: " + text);
      driver.close();
   }
}

このコードでは、By.className()で要素を特定し、getText()を呼び出すことで、その要素内の表示テキストを取得しています。取得した値はコンソールに出力されます。

方法2:JavascriptExecutorクラスを使う

次に、JavascriptExecutorを使用した方法です。この方法ではJavaScriptを直接実行して、input要素のvalue属性の値を取得できます。

import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
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 ExtractValueScripting {
   public static void main(String[] args) {
      System.setProperty("webdriver.chrome.driver", "C:\\Users\\ghs6kor\\Desktop\\Java\\chromedriver.exe");
      WebDriver driver = new ChromeDriver();
      String url = "https://www.tutorialspoint.com/index.htm";
      driver.get(url);
      driver.manage().timeouts().implicitlyWait(12, TimeUnit.SECONDS);
      // JavascriptExecutorオブジェクトを作成
      JavascriptExecutor js = (JavascriptExecutor)driver;
      // JavaScriptコマンドを実行してテキストを抽出
      String text = js.executeScript("return document.getElementById('gsc-i-id1').value").toString();
      System.out.println("抽出されたテキスト: " + text);
      driver.close();
   }
}

ここでは、WebDriverをJavascriptExecutorにキャストし、executeScript()メソッドでJavaScriptを実行しています。document.getElementById()で対象要素を取得し、その.valueプロパティをreturnすることで、入力フィールドの実際の値を取り出せます。

どちらの方法を選ぶべきか

getText()は要素の表示テキストを返しますが、inputタグに入力された値はHTMLのテキストノードではないため、うまく取得できない場合があります。そのようなケースでは、JavascriptExecutorで.valueプロパティに直接アクセスする方法が確実です。用途に応じて使い分けるとよいでしょう。

  1. TkinterのEntryウィジェットから値を取得する方法【.get()メソッドの使い方】

    Tkinterでアプリケーションを開発していると、作成したEntryウィジェット(テキスト入力欄)に入力された値を取得したい場面が出てきます。そんなときに活用できるのが.get()メソッドです。このメソッドを使うと、ユーザーが入力した内容を変数として受け取ることができ、その値を画面に表示したり、他の処理に利用したりできます。 実装例:入力したテキストをラベルに表示する ここでは、Entryウィジェットに入力されたテキストを取得し、Labelウィジェットを使って画面に表示する簡単なアプリケーションを作成してみましょう。 # tkinterライブラリをインポート from tkinter impo

  2. Macの「写真」アプリに写真を取り込む方法まとめ

    iPhoneやiPadの「写真」アプリは、撮影した写真や動画が自動的に保存される場所としておなじみですが、実はMacでも同じアプリを使って写真の閲覧や編集ができるのをご存じでしょうか。 本記事は、Macの「写真」アプリの使い方を解説するシリーズ記事のひとつです。シリーズでは、写真や動画の閲覧・編集・共有の方法、写真の整理術、フィルターの追加や各種補正で写真を仕上げる方法などを取り上げています。 ただし、その前にまず写真をMacに取り込む必要があります。この記事では、iCloud写真を使ってすべての写真や動画をiCloudに保存し、どのデバイスからでもアクセスできるようにする方法をはじめ、写真を