Скажите, почему это не заканчивается ошибкой тайм-аута (selenium 2 webdriver)?

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?!"

OK, как вы можете видеть, даже если я установил время ожидания на 0,1 секунды, по-прежнему не выдается исключение тайм-аута Когда element.click()выполняется, он не блокируется до тех пор, пока не загрузится вся страница, и поэтому Just clicked !И я ожидаю ошибку тайм-аута!появился, и к моему удивлению new_element = WebDriverWait(browser, 0.1).until(лямбда-браузер : browser.find_element_by_id("элемент"))ждать до загружается вся страница. И если вы используете неявные ожидания, вы получите тот же результат.

Я хочу сказать, что иногда после того, как вы щелкнете по элементу, загрузка страницы может занять до нескольких часов. из-за плохого прокси-сервера, и вы, очевидно, НЕхотите ждать так долго, то, что вы хотите, это исключение тайм-аута. В этом случае, как бы вы заставили это работать?

7
задан Shane 25 May 2012 в 15:18
поделиться