目的
日本Seleniumユーザーコミュニティが公開しているテストサイトの要素を操作してみる
※TODO:これ以外の要素
サンプルコード
textbox:値の確認と、テキスト入力後の値を確認する
radio button:値の確認と、他方をクリックした後の値を確認する
checkbox:値の確認と、両方をクリックした後の値を確認する
※注意事項:radio button、checkboxの値の取得
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome('C:\\Dev\\tool\\webdriver\\chromedriver.exe')
driver.get('http://example.selenium.jp/reserveApp/')
try:
# 0.5秒間隔で検索の終了をチェックする(最大10秒)
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, 'goto_next'))
)
# 内容の確認
elm = driver.find_element_by_name('reserve_y')
print('reserve_y:' + elm.get_attribute('value'))
elm = driver.find_element_by_name('reserve_m')
print('reserve_m:' + elm.get_attribute('value'))
elm = driver.find_element_by_name('reserve_d')
print('reserve_d:' + elm.get_attribute('value'))
elm = driver.find_element_by_name('reserve_t')
print('reserve_t:' + elm.get_attribute('value'))
elm = driver.find_element_by_name('gname')
print('gname:' + elm.get_attribute('value'))
print('input')
# textbox に入力する clear() -> send_keys()
elm = driver.find_element_by_name('reserve_y')
elm.clear()
elm.send_keys('2020')
print('reserve_y:' + elm.get_attribute('value'))
elm = driver.find_element_by_name('reserve_m')
elm.clear()
elm.send_keys('3')
print('reserve_m:' + elm.get_attribute('value'))
elm = driver.find_element_by_name('reserve_d')
elm.clear()
elm.send_keys('14')
print('reserve_d:' + elm.get_attribute('value'))
elm = driver.find_element_by_name('reserve_t')
elm.clear()
elm.send_keys('2')
print('reserve_t:' + elm.get_attribute('value'))
elm = driver.find_element_by_name('gname')
elm.clear()
elm.send_keys('tabizou')
print('gname:' + elm.get_attribute('value'))
# 内容の確認
elm = driver.find_element_by_id('breakfast_on')
print('breakfast_on :' + ('on' if elm.get_attribute('checked') else 'off'))
elm = driver.find_element_by_id('breakfast_off')
print('breakfast_off:' + ('on' if elm.get_attribute('checked') else 'off'))
# breakfast_off をクリック
driver.find_element_by_id('breakfast_off').click()
print('clicked')
elm = driver.find_element_by_id('breakfast_on')
print('breakfast_on :' + ('on' if elm.get_attribute('checked') else 'off'))
elm = driver.find_element_by_id('breakfast_off')
print('breakfast_off:' + ('on' if elm.get_attribute('checked') else 'off'))
# 内容の確認
elm = driver.find_element_by_name('plan_a')
print('plan_a:' + ('on' if elm.is_selected() else 'off'))
elm = driver.find_element_by_name('plan_b')
print('plan_b:' + ('on' if elm.is_selected() else 'off'))
# checkbox をクリックする
driver.find_element_by_name('plan_a').click()
driver.find_element_by_name('plan_b').click()
print('clicked')
elm = driver.find_element_by_name('plan_a')
print('plan_a:' + ('on' if elm.is_selected() else 'off'))
elm = driver.find_element_by_name('plan_b')
print('plan_b:' + ('on' if elm.is_selected() else 'off'))
time.sleep(5) # 表示確認用のwait
finally:
driver.quit()
参考にしたのは以下のサイト
How to check if the radio button is selected or not in Selenium WebDriver?
How to verify if a checkbox is checked using Selenium Webdriver