使用 Python 和 Selenium 找出下载何时完成


使用 Python 中的 Selenium webdriver,我们可以找出下载何时完成。我们将使用 ChromeOptions 类来实现此目的。首先,我们应创建一个 ChromeOptions 类的对象。

然后,对所创建对象应用 add_experimental_option 方法。我们将传递浏览器首选项download.default_directory:<下载文件的目录>作为该方法的参数。最后,此信息将传递给驱动程序对象。

下载完成后,我们借助 os.path.isfile 方法对其进行确认。下载文件路径作为参数传递给该方法。还应使用 os.path.exists 方法来确认下载文件的路径是否存在。

语法

op = webdriver.ChromeOptions()
p = {'download.default_directory':'C:\Users\Downloads\Test'}
op.add_experimental_option('prefs', p)

示例

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time
import os.path
#object of ChromeOptions class
op = webdriver.ChromeOptions()
#browser preferences
p = {'download.default_directory': 'C:\Users\Downloads\Test'}
#add options to browser
op.add_experimental_option('prefs', p)
#set chromedriver.exe path
driver = webdriver.Chrome(executable_path="C:\chromedriver.exe",
options=op)
#maximize browser
driver.maximize_window()
#launch URL
driver.get("https://www.seleniumhq.org/download/");
#click download link
l = driver.find_element_by_link_text("32 bit Windows IE")
l.click()
#check if file downloaded file path exists
while not os.path.exists('C:\Users\Downloads\Test'):
time.sleep(2)
#check file
if os.path.isfile('C:\Users\Downloads\Test\IEDriverServer_Win32.zip):
   print("File download is completed")
else:
   print("File download is not completed")
#close browser
driver.quit()

输出

更新于:02-Feb-2021

7K+ 次查看

开启您的 职业生涯

通过完成课程获得认证

开始
广告