selenium等待总是需要超时吗?(Python)

时间:2015-12-09 13:58:03

标签: python selenium

在selenium doc中我们可以看到我们必须为等待设置一些超时。 例如:来自该文档的代码

wait = WebDriverWait(driver, 10)
element = wait.until(EC.element_to_be_clickable((By.ID,'someid')))

我想我们总是必须设置一些超时?或者有一些方法会等到所有的AJAX代码都会下载,只有在我们的驱动程序与一些web元素交互之后(我的意思是没有任何固定的超时,它只是加载所有的东西,只有在它开始交互之后)?

1 个答案:

答案 0 :(得分:0)

希望这段代码可以帮到你。这就是我解决这个问题的方法。

 #Check with jQuery if it has any outstanding ajax
    def ajax_complete(self):
        try:
            return 0 == self.execute_script("return jQuery.active")
        except:
            pass
    #Create a method to wait for ajax to complete
    driver.wait_for_ajax = lambda: WebDriverWait(driver, 10).until(ajax_complete, "")
    driver.implicitly_wait(30)