首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >下载".eml“文件时无法删除”保存/丢弃“通知

下载".eml“文件时无法删除”保存/丢弃“通知
EN

Stack Overflow用户
提问于 2019-02-02 06:18:31
回答 7查看 4.7K关注 0票数 4

如何在通过下载文件时摆脱这个keep/discard通知?

我试过以下几点,但没有成功:

代码语言:javascript
复制
chromeOptions = webdriver.ChromeOptions()
prefs = {"profile.default_content_setting_values.notifications" : 2}
chromeOptions.add_experimental_option('prefs', prefs)
driver = webdriver.Chrome(chrome_options=chromeOptions)

编辑:似乎我已经发现了另一个网站有这样的".eml“文件,它会在点击该链接时抛出相同的通知,以.eml结尾。

示例网站链接

我正在尝试以下方法:

代码语言:javascript
复制
from selenium import webdriver

url = "https://www.online-convert.com/file-format/eml"

dirf = r"C:\Users\WCS\Desktop\emlfolder"

def download_file(link):
    driver.get(link)
    driver.find_element_by_css_selector("a[href$='example.eml']").click()

if __name__ == '__main__':
    chromeOptions = webdriver.ChromeOptions()
    prefs = {'download.default_directory' : dirf}
    chromeOptions.add_experimental_option('prefs', prefs)
    driver = webdriver.Chrome(chrome_options=chromeOptions)
    download_file(url)

通知与下面的图像完全相同:

顺便说一句,我开始点击那个链接来下载只是因为我正在试验的站点没有任何真正的url连接到".eml“文件来导航。结果,导航到".eml“链接也会导致相同的通知。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2019-02-04 08:09:01

您需要指定要下载的文件扩展名。

代码语言:javascript
复制
prefs = {
    'download.default_directory': dirf,
    'download.prompt_for_download': False,
    'download.extensions_to_open': 'eml',
    'safebrowsing.enabled': False
}

options.add_experimental_option('prefs', prefs)
driver = webdriver.Chrome(chrome_options=options)
票数 6
EN

Stack Overflow用户

发布于 2019-02-02 06:51:04

这是与安全浏览相关的弹出窗口。试一试

代码语言:javascript
复制
  chromeOptions = webdriver.ChromeOptions()
  prefs = {'safebrowsing.enabled': 'false'}
  chromeOptions.add_experimental_option("prefs", prefs)
  driver = webdriver.Chrome(chrome_options=chromeOptions)
票数 2
EN

Stack Overflow用户

发布于 2019-02-05 19:33:06

根据这个:如何禁用“这种类型的文件会损害您的计算机”弹出。,您将需要多个选项:

在最近更新Chrome之后,这个被接受的答案就失效了。现在您需要使用--safebrowsing-disable-extension-blacklist--safebrowsing-disable-download-protection命令行开关。

但是,每当谷歌的人对与某一选项相关的安全问题有新的想法时,他们就会在下一个版本的Chrome中修改这种行为。我正在使用Chrome 72和上面提到的选项不再禁用通知。

简短的版本:不要试图禁用安全措施。恶意软件的作者们都受过这样的训练,任何优秀的浏览器开发者似乎都认为“比抱歉更安全”。

如果您真的需要一个下载解决方案,您可以使用请求模块并下载而不需要铬:

代码语言:javascript
复制
from selenium import webdriver
import requests

url = "https://www.online-convert.com/file-format/eml"

dirf = r"C:\Users\WCS\Desktop\emlfolder"

def download_file(link):
    driver.get(link)
    linkElement = driver.find_element_by_css_selector("a[href$='example.eml']")
    r = requests.get(linkElement.get_attribute('href'))
    file = open("C:\Users\WCS\Desktop\emlfolder\example.eml", 'wb')
    file.write(r.content)
    file.close()

if __name__ == '__main__':
    chromeOptions = webdriver.ChromeOptions()
    prefs = {'download.default_directory' : dirf}
    chromeOptions.add_experimental_option('prefs', prefs)
    driver = webdriver.Chrome(chrome_options=chromeOptions)
    download_file(url)
    driver.quit()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54490547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档