Python Selenium 利用ノート草稿
私の読書ノートに追加するべき Python Selenium 利用ノートの草稿。
Python Selenium 利用ノート
概要は説明しない。
動機
当パッケージを利用する動機を述べる。特になぜ BeautifulSoup4 だけでは不満なのかを述べる。
導入
- Python 側のタスクを述べる。
- WebDriver 側のタスクを述べる。
- ブラウザーにより導入手順が異なる。私は Microsoft Edge を使いたいのでそれしか述べない。
- MS Edge はドライバーを OS の機能により入手できることを述べる。
- ブラウザーにより導入手順が異なる。私は Microsoft Edge を使いたいのでそれしか述べない。
コード例
Selenium に直接関係するコードしか記さない。
- 特定の URL が指し示す HTML ファイルをブラウザーで開くコード
- 開いているブラウザーを閉じるコード
- ケース:
driver.close() - ケース:
driver.quit()
- ケース:
- 特定の HTML 要素を locate するコード
- 公式文書の記述で十分と思われる。
- HTML 要素に対して
- 属性を得るコード
- タグが挟むテキストを得るコード
form上のテキストボックスに何かを記入するコードform上のコントロールの状態を更新するコード- 記入済みフォームを投稿するコード
- ページのロード完了を待つコード
- ケース:単に
titleが見られればいい - ケース:特定のコントロールがアクセス可能になることが必要である
- ケース:その他
- ケース:単に
- 待機に関するコード
driver.implicitly_wait()による共通の待機時間上限を設定をするコード- コントロール単位での待機
- 公式文書の記述で十分と思われる。
- キー操作に関するコード
- ケース:ドキュメントを意識しないキー操作を実行するコード
- ケース:特定の HTML 要素に対するキー操作を実行するコード
テスト&デバッグのコツ
職人的な技法がありそうだ。
応用例
wifiota.py: 大田区図書館の Free Wi-Fi 再接続を要求する際に実行するスクリプト。mjnet.py: セガ MJ Arcade ユーザーサイト MJ.NET のゲームスコアを自動的に取得するスクリプト。
参考資料
- Selenium 公式文書
- よく見かける逆引き辞書サイト
- Stack Overflow で参考にしたポスト群