0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

備忘録Advent Calendar 2023

Day 11

【明示的待機】WEBサイトが完全に開いたら次のアクション

Posted at

はじめに

に関しての備忘録です。
初心者です😅
間違えてる部分、多々あると思います。
もし見つけた場合、ツッコミいただけると助かります🙇

🦁結論🦁

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の実行権限が制限されてる場合がある。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?