from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
browser = webdriver.Firefox()
browser.get("http://testsite.com")
element = WebDriverWait(browser, 10).until(lambda browser : browser.find_element_by_id("element"))
element.click() # it actually goes to page http://testsite.com/test-page.html
print "Just clicked! And I'm expecting timeout error!"
new_element = WebDriverWait(browser, 0.1).until(lambda browser : browser.find_element_by_id("element"))
print "Too bad there's no timeout error, why?!"
ご覧のとおり、待ち時間を 0.1 秒に設定しても、まだタイムアウト例外はスローされません。実行するelement.click()
と、ページ全体が読み込まれるまでブロックされないため、表示されました。Just clicked! And I'm expecting timeout error!
驚いたことにnew_element = WebDriverWait(browser, 0.1).until(lambda browser : browser.find_element_by_id("element"))
、ページ全体が読み込まれるまで待ちます。を使用するimplicit waits
と、同じ結果が得られます。
私のポイントは、要素をクリックした後、プロキシが悪いためにページが読み込まれるまでに数時間かかる場合があることです. この場合、どのように機能させますか?