核心 API の詳細解説
Mbbrowser 環境を制御下に置いた後、次に行うべき最も重要なことは、Selenium を使用して意図通りにページを操作することです。この章では、開発時間の 80% で使用することになるコア API をわかりやすく解説します。
1. ナビゲーションとページ制御
URL を開く
python
driver.get("https://www.amazon.com")- 解説: ブラウザを指定した URL へ移動させます。
- ページが完全に読み込まれる(
onloadイベントが発生する)まで、スクリプトの実行はここで一時停止します。
2. 要素の特定(ロケータ)
IMPORTANT
要素を見つけることは、すべての操作の前提条件です。 要素が見つからない=ドアが見つからない=何もできない、ということを意味します。
ロケータの種類一覧
Selenium 4 では、By クラスを使用して特定方法を指定します。
| 特定方法 | コード例 | 推奨シーン |
|---|---|---|
| ID | By.ID, "username" | 最も高速で安定。最優先。 |
| CSS セレクタ | By.CSS_SELECTOR, "#username" | 柔軟性が高く、汎用性が最強。 |
| XPath | By.XPATH, "//input[@name='user']" | 複雑な構造には必須ですが、記述が冗長になりがち。 |
| リンクテキスト | By.LINK_TEXT, "ログイン" | リンクをクリックする場合に便利。 |
3. 待機メカニズム(クラッシュ防止の要)
CAUTION
time.sleep(N) は最悪の待機方法です。通信が速いときは時間の無駄になり、遅いときは不十分でエラーになります。Selenium のインテリジェントな待機機能(明示的待機)を使用しましょう。
明示的待機(強く推奨)
特定の条件が満たされるまで(最大 N 秒間)待機します。
python
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# id="username" の要素が可視化されるまで最大 15 秒待機
wait = WebDriverWait(driver, 15)
username_input = wait.until(
EC.visibility_of_element_located((By.ID, "username"))
)4. 人間らしい操作のシミュレート
テキスト入力
python
input_box = driver.find_element(By.ID, "username")
input_box.clear() # 既存の内容をクリア
input_box.send_keys("mbbrowser_user") # 入力キーボード操作
python
from selenium.webdriver.common.keys import Keys
# Enter キーを押す(検索などの実行)
search_box.send_keys(Keys.RETURN)5. Cookie 操作
Mbbrowser 環境は Cookie を永続的に保存しますが、コードから制御することも可能です。
python
# すべての Cookie を取得
all_cookies = driver.get_cookies()
# 特定のドメインに対して Cookie を追加(先にそのドメインを開く必要があります)
driver.add_cookie({"name": "session_id", "value": "abc123", "domain": ".example.com"})TIP
API の基本はマスターできましたか?次の章 実戦ケース集 では、ログインや並列処理など、そのまま使えるテンプレートを紹介します。
