如何使用 selenium-python 自动从弹出对话框下载文件?

seleniumautomation testingtesting tools

我们可以使用 Python 的 Selenium webdriver 自动从弹出对话框下载文件。点击下载链接后,会出现一个对话框,供用户选择各种选项来保存文件。

我们必须以编程方式配置下载执行的路径,以便每次启动 Firefox 浏览器时,Firefox 配置文件都能在所需的位置执行下载。

打开 Firefox 的地址栏,输入 about:config 并按 Enter 键。所有浏览器首选项都应通过 编辑 和 切换 按钮进行设置。我们将使用 Firefox Options 类来设置浏览器的下载首选项。

示例

from selenium import webdriver
from selenium.webdriver.firefox.options import Options
#Options 类的对象
op = Options()
#将文件保存到最近下载的路径,值为 2
op.set_preference("browser.download.folderList",2)
#禁用显示下载管理器窗口,值为 false
op.set_preference("browser.download.manager.showWhenStarting", False)
#下载位置
op.set_preference
("browser.download.dir", "C:\Users\ghs6kor\Documents\Download")
#设置 MIME 格式,保存文件到磁盘,无需询问打开文件时使用的文件类型
op.set_preference
("browser.helperApps.neverAsk.saveToDisk",
"application/octet-stream,application/vnd.ms-excel")
#设置 geckodriver.exe 路径
driver = webdriver.Firefox(executable_path="C:\geckodriver.exe",
firefox_options=op)
driver.maximize_window()
#启动 URL
driver.get("https://the-internet.herokuapp.com/download");
#点击下载链接
l = driver.find_element_by_link_text("xls-sample1.xls")
l.click()

输出

文件已下载到声明的位置。


相关文章