小编典典
当前,无法在WebDriver中使用wait_for_condition。python
selenium代码确实提供了DrivenSelenium类来访问旧的selenium方法,但是它不能执行wait_for_condition。
硒Wiki上有一些信息。
最好的选择是使用WebDriverWait类。这是一个帮助程序类,该类定期执行一个函数,等待其返回True。我的一般用法是
driver = webdriver.Firefox()
driver.get('http://example.com')
add = driver.find_element_by_id("ajax_button")
add.click()
source = driver.page_source
def compare_source(driver):
try:
return source != driver.page_source
except WebDriverException:
pass
WebDriverWait(driver, 5).until(compare_source)
# and now do some assertions
此解决方案绝不是理想的选择。对于页面请求/响应周期被延迟以等待某些ajax活动完成的情况,try /
except是必需的。如果在请求/响应周期中调用compare_source get,则会抛出WebDriverException。
2020-06-26