はじめに
【seleniumクラスシリーズ】Alertクラスに関しての備忘録です。
初心者です😅
間違えてる部分が多々あると思います。
もし見つけた場合、ツッコミいただけると助かります🙇
🦁結論🦁
Alertクラスは自動化させる中でのポップアップの処理を実行するためにクラス。
押さえておくべき点
- Alertクラスはブラウザのポップアップやアラートを扱うクラス。
- 主にJavaScriptで生成されたアラートに使用される。
- 警告、確認、プロンプトなどの種類のポップアップを扱う。
- Alertクラスを利用する際にはポップアップがブロックされないようにseleniumのオプションを利用する必要がある(これによりユーザー操作が可能になる)
- ポップアップはなるべくログを残しておくとデバッグがやりやすくなる。
利用シーン
- ブラウザのポップアップやアラートが出た際の操作を自動化したい。
注意点
- ポップアップが出現する前にスクリプトが進行してしまわないように注意する。
- ブラウザ設定でポップアップがブロックされていないか確認する。
- 待機時間の設定が短いとポップアップが表示される前にタイムアウト指定しまう可能性がある(長めの待機時間の設定が必要)
- JavaScriptポップアップは、メインのページ処理とは別のタイミングで発生することがある(対処は待機時間を儲けるなど)
- 全てのブラウザで同じように機能しないことがある。
- 一部のポップアップはセキュリティ上の理由で制御できないことがある。
- ポップアップが出た際には必ず、ポップアップにフォーカスをスイッチする必要がある。
- ポップアップのテキストを読み込む時に、処理や表示がされてないなどがあった場合はエラーになってしまう(対処は表示されるまで待機時間や条件を設ける必要がある)
メソッド一覧
import
from selenium.webdriver.common.alert import Alert
accept()
アラートのOKボタンをクリックし、アラートを承認。
# アラートにスイッチ
alert = Alert(driver)
# アラートを承認
alert.accept()
dismiss()
アラートのキャンセルボタンをクリックし、アラートを閉じる。
# アラートにスイッチ
alert = Alert(driver)
# アラートを拒否
alert.dismiss()
getText()
アラートのテキスト内容を取得。
# アラートにスイッチ
alert = Alert(driver)
# アラートのテキストを取得
alert_text = alert.text print("Alert says:", alert_text)
sendKeys()
プロンプトタイプのアラートにテキストを入力。
# アラートにスイッチ
alert = Alert(driver)
# アラートにテキストを入力
alert.send_keys("Hello World")
switchTo()
WebDriverからアラートにフォーカスを切り替える。Alertクラスを直接使用する際にはこのメソッドは必要ないが、driver.switch_to.alertを使って同じ効果がある。
alert = driver.switch_to.alert
まとめ😺
ポップアップを適切に処理する場合にAlertクラスを利用する。
フォーカスを切り替えたり、待機時間を適切に加えることが大事。