使用Selenium等待jQuery弹出窗口加载

时间:2015-05-25 09:30:49

标签: jquery python selenium

好的,我需要一个Python Web驱动程序脚本来等待加载jQuery弹出窗口。我尝试了几个教程,但没有一个能为我工作。

我有:

driver.find_element_by_id("xxx").click()

//现在等待弹出窗口 我试过wait.until

self.wait = WebDriverWait(self.driver, 20)
wait = self.wait
wait.until(EC.presence_of_element_located((By.ID, "myDynamicElement"))

但它不起作用。我总是暂停。

有什么建议吗?

3 个答案:

答案 0 :(得分:1)

基于documentation__init__ WebDriverWait方法的第二个参数是以秒为单位的超时。

目前,您正在为等待传递20秒的超时,并且您遇到了超时问题。如果你加一个更长的超时,比如一个小时,它应该消除超时问题。

self.wait = WebDriverWait(self.driver, 3600)

答案 1 :(得分:1)

尝试使用其他选择器或使用更长的例外。 Selenium在给定的20秒内没有找到元素id =“myID”。

答案 2 :(得分:0)

它不是优化代码,但你可以试试这个:

def wait_popup ():
    i=0
    while i!=1
        try:
            alert = browser.switch_to_alert()#switch to popup
            alert.accept()
            i=1
        except:
            i=0 
            time.sleep(1)