使用 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()
输出
广告