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

标签 python selenium selenium-chromedriver

<分区>

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

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

最佳答案

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")

对于 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)

关于python - 如何在 Chrome 中使用 Selenium 处理另存为对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43919370/

相关文章:

python - 将参数传递给自定义 save() 方法

java - Jpype导入在jar中找不到模块

python - "a is a is a"比较结果

java - Selenium 中的 .sendKeys 和 .sendText 有什么区别

python - 当我 "read"列的文本内容时,为什么会收到 StaleElementReferenceException?

python - 使用 apply 函数在 pandas 中创建一个具有舍入值的新列

java - 如何在 Selenium Webdriver 中模拟鼠标双击

Python。 Selenium 。如何等待新窗口打开?

javascript - Selenium::WebDriver::Error::ElementNotVisibleError:使用 Chrome 浏览器时调用 send_key 函数时元素不可见

python-3.x - 如何在 python selenium 中设置 Chrome 实验性选项 same-site-by-default-cookie