You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 18:59:27