はじめに
に関しての備忘録です。
初心者です😅
間違えてる部分、多々あると思います。
もし見つけた場合、ツッコミいただけると助かります🙇
🦁結論🦁
sample.py
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
# WebDriverのインスタンスを作成
driver = webdriver.Chrome()
# ウェブサイトを開く
driver.get("http://example.com")
# ページが完全にロードされるのを最大3秒間待機する
WebDriverWait(driver, 3).until(
lambda x: x.execute_script('return document.readyState') == 'complete'
)
# ここにページが完全にロードされた後の処理を書く
# 例: 特定の要素の検索、データの取得、クリック操作など
# ブラウザを閉じる
driver.quit()
押さえておくべき点
- execute_scriptメソッドを使用して、ブラウザでJavaScriptコードを実行し、ページの読み込み状態を確認してる
- ページの読み込み状態はdocument.readyStateプロパティによって判断される()
- タイムアウト設定が引数に入れる必要がある(入れないと例外)
document.readyStateプロパティ
- 'loading': ページがまだ読み込み中です。
- 'interactive': ページのDOMは読み込まれていますが、まだ完全には読み込まれていない。
- 'complete': ページの読み込みが完了。
利用シーン
- Webページが完全な読み込みをさせてから次のアクションを行いたいとき
- パフォーマンスモニタリングをしたい場合(どのぐらいの時間がかかるのか?など)
注意点
- 例外処理を行う必要あり(タイムアウトする可能性)
- JavaScriptの実行権限が制限されてる場合がある。