如何在 Chrome 中使用 Selenium 处理另存为对话框

Ash*_*rma 4 python selenium selenium-chromedriver

我正在尝试使用 Selenium Chrome 网络驱动程序下载文件,但我不知道如何处理另存为对话框。

我已经看到很多关于如何使用 Firefox 执行此操作的答案,但没有使用 Chrome。

Yon*_*ono 5

profile = webdriver.FirefoxProfile()
profile.set_preference('browser.download.folderList', 2) # 自定义位置 profile.set_preference('browser.download.manager.showWhenStarting', False) profile.set_preference('browser.download.dir ', '/tmp') profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'text/csv')

设置这些首选项后,浏览器将不会显示弹出对话框,询问您是否要下载保存或其他。什么时候可以使用find_some_eleme = driver.find_element_by_xpath('''<somexpath>''').click()我们可以使用任何其他方法来定位元素 xpath/id/css/name... 并且我们自由地使用方法 click() 因为不会有对话框。或者.setPreference("browser.helperApps.neverAsk.saveToDisk","application/octet-stream,text/csv")

对于铬:

chromedriver = "path/to/chromedriver"

os.environ["webdriver.chrome.driver"] = chromedriver
chrome_options = Options()

# this is the preference we're passing
prefs = {'profile.default_content_setting_values.automatic_downloads': 1}
chrome_options.add_experimental_option("prefs", prefs)
driver = webdriver.Chrome(chrome_options=chrome_options)
Run Code Online (Sandbox Code Playgroud)