要素に対して「is_selected」を実行することで要素が選択状態にあるかどうかを判定することが出来ます。
「is_selected」は選択状態/非選択状態が存在する要素(チェックボックス、ラジオボタン、セレクトボックス)に対して有効です。
下記のサンプルでは、cheked属性により選択状態にある『はい』ラジオボタンと、非選択状態にある『いいえ』ラジオボタンの選択状態を判定しています。「is_selected」実行することで、選択状態にある『はい』ラジオボタンはTrueが返され、それ以外はFalseが返されます。
説明
◆メソッド ・is_selected() ◆使用形態 ・element.is_selected() ◆備考 ・チェックボックスやラジオボタンなどに対して選択の有無を確認する為のメソッド ◆関連項目 ・要素が表示されているか判定する ・要素が有効になっているか判定する
サンプル
from selenium import webdriver from selenium.webdriver.chrome import service from selenium.webdriver.common.by import By #ChromeDriverのパスを変数に設定 CHROMEDRIVER = "D:\driver\chromedriver.exe" #ChromeDriverのstartとstopを制御するServiceオブジェクトを介してパスを渡す chrome_service = service.Service(executable_path=CHROMEDRIVER) #Chromeを起動 driver = webdriver.Chrome(service=chrome_service) #指定したURLに遷移する<図1> driver.get("file://D:/AutoTest/isSelected.html") #選択状態にある『はい』のラジオボタン要素を取得 elemYes = driver.find_element(By.ID, "ra01") #選択状態にない『いいえ』のラジオボタン要素を取得 elemNo = driver.find_element(By.ID, "ra02") #要素が選択されているかどうか判定 print(elemYes.is_selected()) print(elemNo.is_selected())
※selenium version 4.1.3で動作確認をしています(ブラウザのUIや属性値などが変更された場合、実行結果が異なる可能性があります)
実行結果
True False
isSelected.html<図1>
<!DOCTYPE html> <html lang="ja"> <head> <title>isSelected</title> </head> <body> <p> Seleniumで自動テストを実施したいですか? </p> <p> <input type="radio" id="ra01" name="question" checked>はい<br> <input type="radio" id="ra02" name="question">いいえ<br> <input type="radio" id="ra03" name="question">どちらとも言えない </p> </body> </html>
動画デモ
※字幕をONにすると解説のテロップが表示されます※