首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Selenium (Python) -使用Chrome web驱动程序等待下载过程完成

Selenium (Python) -使用Chrome web驱动程序等待下载过程完成
EN

Stack Overflow用户
提问于 2018-01-15 20:45:34
回答 9查看 25.7K关注 0票数 18

我通过chromewebdriver (windows)使用selenium和python,以便自动化从不同页面下载大量文件的任务。我的代码可以工作,但解决方案远非理想:下面的功能点击网站按钮,启动一个java脚本功能,生成PDF文件,然后下载它。

我不得不使用静态等待,以等待下载完成(丑陋)我不能检查文件系统,以验证何时下载完成,因为我使用的是多线程(从不同的页面同时下载大量文件),而且文件的名称是在网站本身动态生成的。

我的代码:

def file_download(num, drivervar):
Counter += 1
    try:
        drivervar.get(url[num])
        download_button = WebDriverWait(drivervar, 20).until(EC.element_to_be_clickable((By.ID, 'download button ID')))
        download_button.click()
        time.sleep(10) 
    except TimeoutException: # Retry once
        print('Timeout in thread number: ' + str(num) + ', retrying...')
..... 

是否可以在webdriver中确定下载完成?我想避免使用time.sleep(x)。

非常感谢。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48263317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档