ページがAJAXを使用しているときに、暗黙的および明示的な待機を使用できますが、十分な要素がロードされているときにdriver.get()によって発生したロードを停止します。ページの読み込みが完了したときにのみdriver.get()呼び出しが返るため、これを行うことは可能ですか?Selenium python:特定の要素が読み込まれたときにページの読み込みを停止する方法は?
答えて
はい、pageLoadStrategy
機能をnone
に設定すると可能です。そして、要素存在すると読み込みを停止するようをコールするのを待つ:
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
capa = DesiredCapabilities.CHROME
capa["pageLoadStrategy"] = "none"
driver = webdriver.Chrome(desired_capabilities=capa)
wait = WebDriverWait(driver, 20)
driver.get('http://stackoverflow.com/')
wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '#h-top-questions')))
driver.execute_script("window.stop();")
このコードをローカルで実行したければ、ローカルで何をする必要がありますか?依存関係の要件は理解していますが、上記のテストでchromedriverを指摘する必要がありますか?言語バインディングなしで上記をどのように実行しますか? – Wunderbread
@Wunderbread、私はあなたが "言語バインディングなし"を意味するのかどうかはわかりませんが、コードをローカルで実行するには、chromeriverを 'PATH'環境変数に置くか、コンストラクタへのパスを渡してください(' webdriver.Chrome ')。 –
ありがとう、ありがとう。私が意味していたことはフレームワークなしで上記のテストを実行することです。コマンド "pytest test_foo.py" – Wunderbread
- 1. Selenium Python:head/titleが読み込まれたときにページの読み込みを停止する方法は?
- 2. ページの読み込み時にアニメーションを開始する、読み込まれたページで停止する
- 3. 素材CSS - ページ読み込み後プリローダを停止する
- 4. ヘッドレスブラウザの読み込みを停止するページ
- 5. 読み込み防止ページ
- 6. すぐにUIWebViewの読み込みを停止する方法
- 7. ページが読み込まれた後にスクリプトタグを読み込む方法は?
- 8. 埋め込み済みのYouTube動画の一時停止後の読み込みを停止する方法
- 9. Pythonシリアルが読み込みを停止します
- 10. UIWebViewの読み込みを停止する方法
- 11. viewpager + webview、webviewの読み込みを停止する方法
- 12. ページの読み込みを停止するwatir-webdriver
- 13. Angular2 Child Routesページの読み込みを停止する
- 14. ページの読み込み時に毎回ページの読み込み
- 15. ページの読み込み中にモーダルを読み込む読み込み後に
- 16. PHP読み込み中のコンテンツがページとして読み込まれる
- 17. Selenium Python読み込みページとスクリプト(FirefoxとIE)
- 18. 読み込みを停止しないWebページの画像
- 19. C++の行の読み込みを停止できません
- 20. シリアルポート(Python/RPi/UART)からのバイトの読み込みを停止
- 21. bash/pythonのFIFOからの読み込みを停止
- 22. JQueryまたはページの読み込み後にCSSアニメーションの読み込みを待機させる方法
- 23. ページの読み込みが終了したとき、または「コンテンツ」の読み込みが終了したときに相対を解除する方法
- 24. ページの読み込み時に要素を折りたたむ方法
- 25. リストビューの読み込み中にGIFが読み込まれる
- 26. 要素を取得する前にページ読み込みを待つ方法
- 27. 特定の行でテキストファイルの読み込みを停止するjava
- 28. iframeの読み込みを停止する方法はありますか?
- 29. スライダが別のページの画像の読み込みを停止します
- 30. HtmlUnitはPSNストアページの読み込みを停止しますか?
今、なぜあなたは、このようなことをするだろう、あなたが表示するボタンのを待つとしましょう。ボタンが表示されたら、あなたが望むものを何でもして、それがあなたのコマンドを実行する前にページが完全にロードされるのを待たずに、それが他の理由であれば無駄です。 –
@ElvirMuslicただし、driver.get()の呼び出しは、ページのロードが完全に終了したときにのみ戻されます。ボタン全体が読み込まれるのを待たずにボタンが表示されたら、そのボタンをプログラムでクリックしたいと思うようです。 – RamKumar
実際、driver.get()は、ロードする要素を待つのではなく、単に要求を行います。 driver.something.click()は、ページに関する応答を取得するとすぐにそれを実行し、要素が存在しない場合はエラーをスローします。 意味、1.driver.get()はページからの応答を待ちます(すべてではありません)。 2.あなたは何かを実行することができ、ページを完全にロードする必要はありませんが、それらのアクションを実行している間はロードされます。 3.これは時間と使用量を節約するために使用できます(大きなプロジェクトの場合) –