多くのプロキシを使用してサイトをテストしていますが、問題はそれらのプロキシの一部が非常に遅いことです。したがって、私のコードは時々ページのロードでスタックします。
from selenium import webdriver
browser = webdriver.Firefox()
browser.get("http://example.com/example-page.php")
element = browser.find_element_by_id("someElement")
explicit waits
orのようなものをたくさん試しましたがimplicit waits
、かなり長い間探し回っていましたが、まだ解決策や回避策は見つかりませんでした。ページの読み込み行に実際に影響を与えるものはないようですbrowser.get("http://example.com/example-page.php")
。そのため、常にそこにスタックしています。
誰かがこれに対する解決策を持っていますか?
更新 1:
JimEvans の答えは私の以前の問題を解決しました。ここでは、この新しい機能の python パッチを見つけることができます。
新しい問題:
browser = webdriver.Firefox()
browser.set_page_load_timeout(30)
browser.get("http://example.com/example-page.php")
element = browser.find_element_by_id("elementA")
element.click() ## assume it's a link to a new page http://example.com/another-example.php
another_element = browser.find_element_by_id("another_element")
ご覧のとおり、このページが 30 秒以上読み込まれるとタイムアウト例外がスローされますが、問題は、新しいページが完全に読み込まれるまでブロックされませんが、ページの読み込みにbrowser.set_page_load_timeout(30)
影響を与えないことです。ページ全体がロードされるのを待ってから、その要素を探し始めるためです。いくつかの極端なケースでは、これにはHOURSもかかります。私はそれについて何ができますか?browser.get("http://example.com/example-page.php")
element.click()
another_element = browser.find_element_by_id("another_element")
explicit waits
implicit waits