我通过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...')
.....
Run Code Online (Sandbox Code Playgroud)
是否可以在webdriver中确定下载完成?我想避免使用time.sleep(x).
非常感谢.