ブラウザの自動操作を簡単に実現できるSeleniumBaseを紹介します。
このフレームワークは、Seleniumをより使いやすく拡張したものです。
そして、テスト自動化やスクレイピングなど、様々な用途で活用できます。
環境構築の手順
SeleniumBaseを利用するには、まずSeleniumのインストールが必要です。
そのため、以下の順で環境を整えていきます。
pip install selenium pip install seleniumbase
なお、Selenium 4.6以降では、大きな変更点があります。
それは、Chromeドライバーを手動でダウンロードする必要がなくなったことです。
基本的な特徴
SeleniumBaseには、大きな特徴があります。
それは、要素の待機処理が自動化されている点です。
従来のSeleniumでは、明示的な待機処理(time.sleepなど)が必要でした。
しかし、SeleniumBaseではその必要がありません。
また、開発をサポートする機能も充実しています。
例えば、以下のような機能があります。
- スクリーンショットの自動保存
- デバッグモードの提供
- テスト失敗時の自動スクリーンショット保存
シンプルな実装例
Google検索を例に、実際のコードを見てみましょう。
from seleniumbase import SB with SB(test=True) as sb: sb.open("https://www.google.com/") sb.type('[title="検索"]', "SeleniumBase GitHub page\n") sb.click('[href*="github.com/seleniumbase/"]') sb.save_screenshot_to_logs() # ./latest_logs/ print(sb.get_page_title())
このコードは、とてもシンプルな構成になっています。
まず、SB(test=True)
でブラウザセッションを開始します。
そして、コンテキストマネージャを使用することで、セッションの自動終了も実現しています。
各行の動作は以下の通りです。
- Googleのトップページを開く
- 検索ボックスにテキストを入力(Enterキーも同時に送信)
- 検索結果から目的のリンクをクリック
- スクリーンショットを保存
- ページのタイトルを取得して表示
発展的な機能
SeleniumBaseは、実行時のオプションでさらに便利な機能を提供します。
例えば、--demo
オプションを使うと、ブラウザ操作の様子を視覚的に確認できます。
また、--dashboard
オプションでは、テスト結果をダッシュボード形式で表示できます。
マルチブラウザ対応も特徴の一つです。
Chrome、Firefox、Edge、Safariなど、主要なブラウザで利用できます。
そして、ヘッドレスモードでの実行にも対応しています。
このように、SeleniumBaseはSeleniumの基盤の上に、より使いやすい機能を提供しています。
初心者でも扱いやすく、かつ必要に応じて高度な機能も活用できる柔軟性を持っているのです。