ラジオボタンを選択してチェックBox in Selenium

⚡ スマートサマリー

ラジオボタンを選択してチェックBox in Selenium このチュートリアルでは、最も一般的なフォームコントロール 2 つを自動化するための WebDriver テクニックについて説明します。このチュートリアルでは、click() メソッドと isSelected() メソッドがラジオボタンとチェックボックスを切り替える方法、動作の手順を説明します。 Java コードについて解説し、不安定なロケーターに関するトラブルシューティングのヒントも共有します。

  • 🔘 ラジオボタン Toggle: ラジオボタンを選択するには、WebElement の click() メソッドを使用します。別のオプションを選択すると、前のオプションは自動的に選択解除されます。
  • ☑️ チェックボックス Toggle: 同じ click() メソッドはチェックボックスのオン/オフを切り替えますが、2 回呼び出すとチェックボックスは元の状態に戻ります。
  • 状態確認: isSelected() を呼び出して現在のトグル状態を確認し、チェックされている場合は TRUE、チェックされていない場合は FALSE をアサートします。
  • 🧪 ワーキング Java 例: 完全なプログラムが推進します Guru99デモとFacebookの永続ログインチェックボックスを使用して、両方のフローをデモンストレーションします。
  • 🛠️ 信頼できる位置情報サービス: IDが動的に変更される場合は、By.xpath()またはBy.cssSelector()に切り替え、NoSuchElementExceptionを防ぐために明示的な待機処理を追加してください。

ラジオボタンを選択してチェックBox in Selenium

ラジオボタンイン Selenium

ラジオボタンは、 click() メソッドは、他の WebElement と同様です。 Seleniumラジオボタンのグループでは一度に1つのオプションしか選択できないため、2つ目のオプションをクリックすると、最初のオプションは自動的に選択解除されます。

使い方 https://demo.guru99.com/test/radio.html 練習ページとして、次の点に注意してください。 radio1.click() 「オプション1」ラジオボタンを選択します。 radio2.click() そして「オプション2」を選択し、「オプション1」は選択しないままにする。

ラジオボタンの選択 Guru99 デモページ

チェックボックスを選択する方法 Selenium

Togglチェックボックスのオン/オフは、 click() メソッド。以下のコードは、Facebookの「ログイン状態を維持する」チェックボックスを2回クリックし、チェックボックスがオンになったときにTRUEを、オフになったときにFALSEを出力します。

Selenium Facebookの「ログイン状態を維持する」チェックボックスをクリックするコード

チェックボックスの切り替え状態を示すコンソール出力

その isSelected() このメソッドは、チェックボックスがオンになっているかオフになっているかを確認するために使用されます。これは、テストケースでフォームの状態を検証する際の重要なアサーションです。

こちらも別のサンプルページです。 https://demo.guru99.com/test/radio.html.

Selenium isSelected() でチェックボックスの状態を確認するコード

完全 Code 例:

以下は、ラジオボタンとFacebookのログイン状態を維持するチェックボックスの両方を切り替える、完全な動作コードです。

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 and variables
        System.setProperty("webdriver.chrome.driver", "G:\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();

        driver.get("https://demo.guru99.com/test/radio.html");
        WebElement radio1 = driver.findElement(By.id("vfb-7-1"));
        WebElement radio2 = driver.findElement(By.id("vfb-7-2"));

        // Radio Button 1 is selected
        radio1.click();
        System.out.println("Radio Button Option 1 Selected");

        // Radio Button 1 is de-selected and Radio Button 2 is selected
        radio2.click();
        System.out.println("Radio Button Option 2 Selected");

        // Selecting Checkbox
        WebElement option1 = driver.findElement(By.id("vfb-6-0"));

        // This will toggle the checkbox
        option1.click();

        // Check whether the checkbox is toggled on
        if (option1.isSelected()) {
            System.out.println("Checkbox is Toggled On");
        } else {
            System.out.println("Checkbox is Toggled Off");
        }

        // Selecting a Checkbox and using the isSelected method
        driver.get("https://demo.guru99.com/test/facebook.html");
        WebElement chkFBPersist = driver.findElement(By.id("persist_box"));
        for (int i = 0; i < 2; i++) {
            chkFBPersist.click();
            System.out.println("Facebook Persists Checkbox Status is - " + chkFBPersist.isSelected());
        }
        // driver.close();
    }
}

トラブルシューティング

あなたが遭遇した場合 NoSuchElementException 要素が見つからない場合、WebDriverがページにアクセスした時点でその要素が存在していなかったことを意味します。以下のチェックリストを使用して、迅速に復旧してください。

  1. FirePathを使用するか、Chromeの要素検証機能を使用して、ロケーターを再度確認してください。
  2. コードで使用した値が、ページ上の要素の現在の値と一致していることを確認してください。
  3. 一部の要素には動的な属性があり、 ドロップダウンを選択してください Selenium webdriver.そのような場合は、 By.xpath() or By.cssSelector()これらはより信頼性が高いが、やや複雑である。
  4. 問題はタイミングにある場合もあります。WebDriverがページの読み込みが完了する前にコードを実行してしまったことが原因です。
  5. 待機時間を追加する findElement() 暗黙的または明示的な待機を使用して、要素がレンダリングされる時間を与えます。

よくあるご質問

チェックボックスのWebElementに対してclick()メソッドを呼び出すと、チェックボックスをオフに切り替えることができます。専用のdeselectメソッドはありません。チェックボックスが現在チェックされている場合にのみ選択を解除したい場合は、クリックする前にisSelected()メソッドを使用してください。これにより、テストロジックの安全性が保たれます。

isSelected() は、チェックボックスまたはラジオボタンがチェックされている場合に true を返します。isEnabled() は、要素がユーザー入力を受け付けることができる場合に true を返します。これらは異なる目的で使用されます。isSelected() は状態を検証し、isEnabled() は要素がインタラクションを受け入れるかどうかを検証します。

すべてのチェックボックスWeb要素を取得するには、`findElements()`関数に`By.xpath(“//input[@type='checkbox']”)`のようなロケーターを指定し、リストをループ処理して`isSelected()`をチェックし、チェックされていない要素に対してのみ`click()`を呼び出します。これにより、既にチェックされているボックスを誤って選択解除してしまうことを防ぎます。

AIアシスタントは、ロケーター戦略を生成し、IDが変更された際にセレクターを自己修復し、ラジオボタンとチェックボックスの状態に関するアサーションを提案します。また、AIツールは画面録画からエンドツーエンドのフォーム入力テストを自動生成するため、手動コーディングとテスト保守の手間を削減できます。

はい。AI搭載 Selenium このツールはDOMを分析し、安定した属性を学習し、リリース間でIDが変更された場合にXPathまたはCSSセレクタを書き換えます。この自己修復機能により、UIの微調整のたびに手動でロケーターを更新することなく、フォームコントロールのテストが合格し続けます。