Web要素の Selenium
⚡ スマートサマリー
Web要素の Selenium すべてのフォーム コントロールをプログラム可能なオブジェクトとして表現し、テスターが findElement、sendKeys、click、clear、submit メソッドを使用してテキスト フィールド、チェックボックス、ラジオ ボタン、送信要素を操作できるようにします。 Java コード例。

Web要素の Selenium
フォームは、ウェブサイト訪問者から情報を収集するための基本的なウェブ要素です。ウェブフォームには、テキストボックス、パスワード入力欄、チェックボックス、ラジオボタン、ドロップダウンリスト、ファイル入力欄など、さまざまなGUIコントロールが含まれます。
このチュートリアルでは、各フォーム要素にアクセスする方法を説明します。 Selenium WebDriverと Java. Selenium すべてのフォーム要素を WebElement のオブジェクトとしてカプセル化します。 この機能では、要素を特定し、テキストの入力、ボタンのクリック、フォームの送信などの操作を行うためのAPIを提供します。以下のセクションでは、各フォーム要素で使用できるメソッドについて説明します。
WebElement、findElement()、findElements() の概要
Selenium WebDriver は、単純なフォーム要素をオブジェクトとして表現します。 Web要素.
WebDriver は、ID、名前、クラス、 XPathタグ名、CSSセレクタ、およびリンクテキスト。
WebDriverは、要素を検索するための以下の2つのWebElementメソッドを提供します。
- findElement() – 単一のWeb要素を検索し、WebElementとして返します。 Selenium オブジェクト。
- findElements() – ロケーター基準に一致する WebElement オブジェクトのリストを返します。
以下の例は、findElement() メソッドを使用して、Web ページ上のテキスト フィールドという単一の要素を WebElement オブジェクトとして取得する方法を示しています。複数の要素を検索するための findElements() メソッドについては、以降のチュートリアルで説明します。
ステップ1) WebElementオブジェクトを作成するために必要なパッケージをインポートします。
ステップ2) WebDriverクラスで利用可能なfindElement()メソッドを呼び出してWebElementオブジェクトを取得します。以下にその例を示します。
Selenium 入力テキスト
入力ボックスは、次の 2 つのタイプのいずれかを指します。
- テキストフィールド – Selenium 入力された値を受け取り、入力されたとおりに表示する入力テキストボックス。
- パスワードフィールド – 入力された値を受け入れるが、機密性の高い入力を隠すために、入力された値を一連の特殊文字(一般的にはドットやアスタリスク)としてマスクするテキストボックス。
ロケーター
findElement() メソッドは、要素を指すロケーターをパラメータとして受け取ります。By.id()、By.name()、By.xpath()、By.cssSelector() など、さまざまなロケーターは、id、name、path などのプロパティを使用してページ上の要素を検索します。
FirePathなどのプラグインを使用すると、要素のID、XPath、その他のロケーター値を取得できます。
サンプルサイトの使用 https://demo.guru99.com/test/login.html以下のコードは、id ロケーターを使用して「メールアドレス」テキストフィールドを、name ロケーターを使用して「パスワード」フィールドを特定します。
- メールアドレス入力欄はIDで指定されています。
- パスワード入力欄は名前で表示されます。
キーを送信します Selenium
sendKeys() で Selenium これは、テスト実行中にテキストフィールドとパスワードフィールドに編集可能なコンテンツを入力するために使用されるメソッドです。これらのフィールドは、名前、クラス、IDなどのロケーターによって識別されます。このメソッドは、WebElement オブジェクトで使用できます。type メソッドとは異なり、sendKeys() はテキストボックス内の既存のテキストを置き換えません。
テキストの入力方法 Selenium
テキストフィールドとパスワードフィールドにテキストを入力するには、WebElement で使用できる sendKeys() メソッドを使用します。 Selenium.
同じ例を使用すると、 https://demo.guru99.com/test/login.html以下のスニペットはテキストフィールドとパスワードフィールドを見つけてテキストを入力します Selenium.
- IDロケーターを使用して「メールアドレス」テキストフィールドを見つけます。
- 名前ロケーターを使用して「パスワード」フィールドを見つけます。
- 「メールアドレス」にテキストを入力します。 Selenium sendKeys メソッド。
- sendKeys() メソッドを使用して、「パスワード」フィールドにパスワードを入力します。
入力値の削除 Boxes
その 晴れ() このメソッドは、入力ボックス内のテキストを削除します。 このメソッドはパラメータを必要としません。 以下のコードスニペットは、メールアドレスまたはパスワードの入力欄からテキストを削除します。
Selenium クリックボタン
その Selenium クリックボタンには、click() メソッドを使用してアクセスします。
上記の例では
- ログインボタンを探してください。
- 認証するには、サイトのログインページにある「サインイン」ボタンをクリックしてください。
Selenium 送信ボタン
送信ボタンはフォーム全体をサーバーに送信します。上記のようにWebElementのclick()メソッドを呼び出すか、フォーム内の任意の要素または送信ボタン自体に対してsubmit()メソッドを使用できます。
submit() が使用されると、WebDriver は DOM を検索して要素が属するフォームを特定し、そのフォームの submit 関数をトリガーします。
完全 Code
以下に、完全に動作するコードを示します。
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.*;
public class Form {
public static void main(String[] args) {
// declaration and instantiation of objects/variables
System.setProperty("webdriver.chrome.driver", "G:\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
String baseUrl = "https://demo.guru99.com/test/login.html";
driver.get(baseUrl);
// Get the WebElement corresponding to the Email Address(TextField)
WebElement email = driver.findElement(By.id("email"));
// Get the WebElement corresponding to the Password Field
WebElement password = driver.findElement(By.name("passwd"));
email.sendKeys("abcd@gmail.com");
password.sendKeys("abcdefghlkjl");
System.out.println("Text Field Set");
// Deleting values in the text box
email.clear();
password.clear();
System.out.println("Text Field Cleared");
// Find the submit button
WebElement login = driver.findElement(By.id("SubmitLogin"));
// Using click method to submit form
email.sendKeys("abcd@gmail.com");
password.sendKeys("abcdefghlkjl");
login.click();
System.out.println("Login Done with Click");
// Using submit method to submit the form. Submit used on password field
driver.get(baseUrl);
driver.findElement(By.id("email")).sendKeys("abcd@gmail.com");
driver.findElement(By.name("passwd")).sendKeys("abcdefghlkjl");
driver.findElement(By.id("SubmitLogin")).submit();
System.out.println("Login Done with Submit");
// driver.close();
}
}
トラブルシューティング
要素の検索中に NoSuchElementException() が発生した場合、WebDriver がアクセスした時点でその要素がページに存在しないことを意味します。
- FirePathを使用するか、Chromeの「要素を検証」オプションを使用して、ロケーターを再確認してください。
- コードで使用されている値が、FirePathで確認された要素の現在の値と異なるかどうかを確認してください。
- 特定の要素によっては、属性が動的に変化する場合があります。値が動的に変化する場合は、より信頼性が高いものの、やや複雑なBy.xpath()またはBy.cssSelector()に切り替えてください。
- 場合によっては、待機状態が問題となることがあります。WebDriverがページの読み込みが完了する前にコードを実行してしまうことがあるためです。
- 暗黙的または明示的な待機を使用して、findElement() の前に待機を追加します。
製品概要
- 以下の表は、上記で説明した各タイプの要素にアクセスするためのコマンドをまとめたものです。
| 素子 | Command | 詳細説明 |
|---|---|---|
| 入力 Box | sendKeys() | テキストボックスに値を入力するために使用されます。 |
| 晴れ() | テキストボックスの現在の値をクリアするために使用します。 | |
| リンク | クリック() | リンクをクリックし、次のコマンドに進む前にページの読み込みが完了するまで待機するために使用します。 |
| 送信ボタン | 送信() | 親フォームの送信ハンドラをトリガーすることで、フォームを送信するために使用されます。 |
- WebDriver では、複数の SELECT 要素で複数のオプションを選択できます。
- フォーム内のどの要素に対しても、submit() メソッドを使用できます。WebDriver は、その要素が属するフォームの送信機能を自動的にトリガーします。






