1. フォーム要素との対話の入門
ウェブページ上のフォームは、インタラクションの魔法が始まる場所だよ。 フォームを秘密のコントロールパネルと考えてみて、それを使ってユーザーがシステムとやりとりできるんだ。 でも、ロボット掃除機に指示を出すのではなく、サイトに情報を提供する感じかな。
テキストフィールドにテキストを入力する方法
まず最初に、Seleniumを使ってテキストフィールドにテキストを入力するやり方について話そう。
これはsend_keys()
メソッドを使ってやるよ。段階を追って見ていこう。
from selenium import webdriver
# WebDriverのパスを指定、ここは自分のwebdriverコピーのパスだよ
driver = webdriver.Chrome(executable_path='path/to/chromedriver')
# ウェブページを開く
driver.get('http://example.com/login')
# 入力フィールドを見つけて(例えばidで)テキストを入力
username_field = driver.find_element_by_id('username')
username_field.send_keys('moya_super_uchyotnaya_zapiska')
password_field = driver.find_element_by_id('password')
password_field.send_keys('moy_super_sekretnyy_parol')
この簡単な例では、ページを開いて、ID
で入力要素を見つける。
次にsend_keys()
メソッドを使ってフィールドにテキストを渡すんだ。
コピー&ペーストが次のレベルに進化した感じだよ!
テキストフィールドを埋めるための重要なトリック
フォームが変な動きをすると思ったら、入力フィールドに既にテキストが入っている可能性がある。
新しいテキストを入力する前に、clear()
メソッドを使って古いものを消そう。
username_field.clear()
username_field.send_keys('atarashii_chi')
この小さなトリックは、余計な頭痛から救ってくれるよ、本当に!
2. ボタンをクリックする
入力フィールドが埋まったら次はボタンだね。
例えばフォームを送信するために。Seleniumではclick()
メソッドを使うよ。
「もっとミームを見る」ボタンを押すのと同じ感じで、でもコードで。
# ボタンを名前で見つけてクリック
login_button = driver.find_element_by_name('login')
login_button.click()
こうして、Seleniumスクリプトはクリックのマスターになって、 ゲームで「選択を決定する」ボタンを押す以上のことができるんだ!
使用例
登録フォームを埋めて送信するためにsend_keys()
とclick()
メソッドをどう使うか、一緒に見てみよう。
# 登録ページを開く
driver.get('http://example.com/register')
# 登録フォームを埋める
driver.find_element_by_id('first_name').send_keys('イワン')
driver.find_element_by_id('last_name').send_keys('イワノフ')
driver.find_element_by_id('email').send_keys('ivan@example.com')
driver.find_element_by_id('password').send_keys('superSekuretto123')
# 「登録」ボタンをクリック
register_button = driver.find_element_by_css_selector('.register-button')
register_button.click()
このシンプルな例は、登録フォームをテストしたり、 ユーザーのアクティビティをシミュレーションするのに便利だよ。
GO TO FULL VERSION