Selenium中driver.window_handles在打开下载弹窗后突然耗时过长的问题咨询
Selenium中driver.window_handles在打开下载弹窗后突然耗时过长的问题咨询
大家好,我用Selenium写了一个网页抓取脚本,使用的是Edge浏览器,流程是进入目标网站完成一系列操作后,依次点击多个下载链接。
每次点击下载链接时,都会弹出一个空白窗口,文件随后会下载到C:/Download目录。之前我是这么处理这个流程的:用time.sleep(5)等待下载启动,切换到新打开的空白窗口将其关闭,再切回主窗口继续点击下一个下载链接,具体代码如下:
def download_page(driver): download_buttons = driver.find_elements(By.XPATH, "//span[@id='btnDownload']/a") for button in download_buttons: print(button) # Move para o botão e clica ActionChains(driver).move_to_element(button).click(button).perform() driver.switch_to.window(driver.window_handles[-1]) time.sleep(5) driver.close() driver.switch_to.window(driver.window_handles[0])
这个脚本之前几周运行速度都很快,但昨天开始出现了异常:每次点击下载链接打开空白窗口后,执行driver.window_handles这行代码居然要花费10多分钟才能返回结果。
需要说明的是,只有在打开这个下载空白窗口后才会出现这种情况——如果只打开主窗口时运行driver.window_handles,完全没有问题,而且整个过程没有任何报错信息,就是单纯的长时间卡顿。
我目前在考虑一些替代方案,比如用鼠标自动化脚本快速解决,但这种方法并不理想,因为运行脚本期间不能有人使用电脑,虽然可行但很麻烦。
有没有大佬能帮忙分析下可能是什么原因导致的这种情况?或者有没有更优的处理方案?感谢大家的关注和解答!
备注:内容来源于stack exchange,提问作者Suetam016
相关产品推荐
相关产品推荐

