使用Selenium等待jQuery弹出窗口加载
好的,我需要一个Python web驱动程序脚本来等待jQuery弹出窗口加载。我试过几次教程,但都不适合我 我有:使用Selenium等待jQuery弹出窗口加载,jquery,python,selenium,Jquery,Python,Selenium,好的,我需要一个Python web驱动程序脚本来等待jQuery弹出窗口加载。我试过几次教程,但都不适合我 我有: driver.find_element_by_id("xxx").click() //现在等待弹出窗口 我尝试了等待。直到: self.wait = WebDriverWait(self.driver, 20) wait = self.wait wait.until(EC.presence_of_element_located((By.ID, "myDynamicElement
driver.find_element_by_id("xxx").click()
//现在等待弹出窗口
我尝试了等待。直到:
self.wait = WebDriverWait(self.driver, 20)
wait = self.wait
wait.until(EC.presence_of_element_located((By.ID, "myDynamicElement"))
但它不起作用。我总是有一个暂停时间
有什么建议吗?基于WebDriverWait
的\uuuuu init\uuuuu
方法的第二个参数是以秒为单位的超时
目前,等待时间超过了20秒,并且遇到了超时问题。如果您设置了更长的超时时间,例如一个小时,那么应该可以消除超时问题
self.wait = WebDriverWait(self.driver, 3600)
这不是优化代码,但您可以尝试以下操作:
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)
请尝试其他选择器或使用更长的异常。Selenium在给定的20秒内没有找到元素id=“myID”。您发布的代码等待id为myDynamicElement
的元素(例如,
将匹配,但
将不匹配)。是的,我知道。但它无论如何都不起作用。你在等待什么元素?你怎么知道它在那儿?在浏览器中使用“检查元素”时,您会看到什么?当你的问题更具体的时候,帮助你就容易多了。当你只是说“它不起作用”时,这还不够具体,我们无法理解发生了什么。@nvldk,你还收到超时或其他错误吗?没有错误,没有超时。等待着。但该元素已加载。@nvldk,这意味着您在等待错误的内容。如果您需要更具体的帮助,请发布足够的代码来完全重现问题,包括您正在等待的页面和任何其他需要重现的内容,但仅此而已。您是对的。我在等一件错事。当我定位到iframe中时,问题就解决了。