How to deal with the Save As dialog box using Selenium in Chrome(如何在 Chrome 中使用 Selenium 处理另存为对话框)
问题描述
我正在尝试使用 Selenium Chrome 网络驱动程序下载文件,但我不知道如何处理另存为对话框.
I am trying to download a file using the Selenium Chrome web driver but I don't know how to deal with save as dialog box.
我已经看到很多关于如何使用 Firefox 执行此操作的答案,但没有使用 Chrome.
I have seen many answers on how to do this using Firefox but none using Chrome.
推荐答案
profile = webdriver.FirefoxProfile()
profile.set_preference('browser.download.folderList', 2) # 自定义地点profile.set_preference('browser.download.manager.showWhenStarting',假) profile.set_preference('browser.download.dir', '/tmp')profile.set_preference('browser.helperApps.neverAsk.saveToDisk','文本/csv')
profile = webdriver.FirefoxProfile()
profile.set_preference('browser.download.folderList', 2) # custom location 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")
After setting these preferences the browser won't show up pop dialog asking for whether you want to download save or other.
When can then just use find_some_eleme = driver.find_element_by_xpath('''<somexpath>''').click()
we can use any other method of locating the element xpath/id/css/name... and we use the method click() freely because there won't be a dialog.
or .setPreference("browser.helperApps.neverAsk.saveToDisk","application/octet-stream,text/csv")
对于 Chrome:
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)
这篇关于如何在 Chrome 中使用 Selenium 处理另存为对话框的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何在 Chrome 中使用 Selenium 处理另存为对话框
基础教程推荐
- 筛选NumPy数组 2022-01-01
- 如何让 python 脚本监听来自另一个脚本的输入 2022-01-01
- Python kivy 入口点 inflateRest2 无法定位 libpng16-16.dll 2022-01-01
- 用于分类数据的跳跃记号标签 2022-01-01
- 如何在海运重新绘制中自定义标题和y标签 2022-01-01
- 线程时出现 msgbox 错误,GUI 块 2022-01-01
- 何时使用 os.name、sys.platform 或 platform.system? 2022-01-01
- 在 Python 中,如果我在一个“with"中返回.块,文件还会关闭吗? 2022-01-01
- Dask.array.套用_沿_轴:由于额外的元素([1]),使用dask.array的每一行作为另一个函数的输入失败 2022-01-01
- 使用PyInstaller后在Windows中打开可执行文件时出错 2022-01-01