はじめに
【seleniumクラス】WebDriverに関しての備忘録です。
初心者です😅
間違えてる部分が多々あると思います。
もし見つけた場合、ツッコミいただけると助かります🙇
🦁結論🦁
押さえておくべき点
- WebDriverはウェブブラウザの操作を自動化するために使用。
- Pythonだけでなく、Java、C#、Rubyなども使える。
- Chromeだけでなく、Safari、edgeなど様々なブラウザに対応(それぞれの環境でテストできる。)
- エレメント操作(テキストボックス、ボタン、リンクなど)も可能。
- エレメントの読み込みを待つためにwait機能が付いている。
- 処理途中の画面をスクショすることができる。
- 様々なフレームワークと組み合わせ可能。
利用シーン
- 様々な自動化したいテストに最適(一連の動作を決めてイレギュラーなどがないかを確認する)
- スクレイピングなどの自動データ収集にも向いてる。
注意点
- ブラウザのバージョンによってはselenium対応可否がある。
- 各ドライバーの設定が必要。
メソッド一覧
get(url)
指定するウェブページを開く(よくURLを引数にして行う。)
driver.get("https://www.example.com")
find_element_by_id(id)
指定するIDに要素を検索。
element = driver.find_element_by_id("element_id")
find_element_by_name(name)
指定するname属性の要素を検索。
element = driver.find_element_by_name("element_name")
find_element_by_xpath(xpath)
XPathに基づいて要素を検索。
element = driver.find_element_by_xpath("//div[@class='class_name']")
1. 絶対パス: ドキュメントのルートから始まる完全なパス。例: /html/body/div
2. 相対パス: 現在の要素からの相対的なパス。例: div/a
3. 属性による検索: 特定の属性を持つ要素を検索。例: //a[@href='https://www.example.com']
4. 部分一致: 属性値の一部に基づいて要素を検索。例: //a[contains(@href, 'example')]
5. 複数条件: 複数の条件を組み合わせた検索。例: //div[@class='example' and @id='uniqueId']
様々な条件などを組み合わせて検索して指定することができる。
find_element_by_css_selector(selector)
指定するCSSセレクタ要素を検索。
element = driver.find_element_by_css_selector(".class_name")
send_keys(value)
指定する要素にテキストを入力。
例.テキストボックス(検索ボックス)に入力する。
input_element = driver.find_element_by_name("name")
input_element.send_keys("Test Text")
click()
指定する要素をクリック。
button = driver.find_element_by_id("submit_button")
button.click()
clear()
テキストフィールドの内容をクリア。
テキストボックスをクリアするなど
input_element.clear()
switch_to.alert
アラートにフォーカスを移動し操作。
(小さな小窓が出てきたときにOKボタンを押すなど)
alert = driver.switch_to.alert
alert.accept() # アラートを承認
quit()
ブラウザを閉じてWebDriverセッションを終了。
driver.quit()