首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法通过selenium python 3关闭mozilla firefox中的下载通知(成功下载后)

无法通过selenium python 3关闭mozilla firefox中的下载通知(成功下载后)
EN

Stack Overflow用户
提问于 2022-06-10 12:18:13
回答 1查看 127关注 0票数 0

Selenium Version = 3.141,Mozilla版本: 101.0.1自动化框架: Pytest

成功下载文件后,我们希望关闭通知。

我可以下载该文件,但由于mozilla浏览器右侧显示的通知,无法执行任何操作。我想通过selenium代码关闭该通知,但它似乎不起作用。

已尝试下列解决办法:

代码语言:javascript
复制
      options = webdriver.FirefoxOptions()
    # options = FirefoxProfile()
      options.set_preference("dom.webnotifications.enabled", False)
      options.set_preference("dom.push.enabled", False)
      options.set_preference("browser.helperApps.neverAsk.saveToDisk","application/pptx, application/csv, application/ris, text/csv, image/png, application/pdf, text/html, text/plain, application/zip, application/x-zip, application/x-zip-compressed, application/download, application/octet-stream")

      options.set_preference("browser.download.panel.shown", False)

      options.set_preference("browser.download.folderList", 2)
      options.set_preference("browser.download.manager.showWhenStarting", False)
      options.set_preference("browser.download.dir", os.path.join(parent_folder, 'Downloads'))
      options.set_preference("browser.download.manager.closeWhenDone", True)
      options.set_preference("browser.download.manager.showAlertOnComplete", False)
    # options.add_argument("--headless")
    # options.headless = True
      web_driver = webdriver.Firefox(firefox_options=options,executable_path=GeckoDriverManager().install())
  • 解决方案2:

在成功下载文件后,我们正在尝试按ESC键来拒绝通知,但这似乎也不起作用。

代码语言:javascript
复制
self.driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + Keys.ENTER)

代码语言:javascript
复制
ActionChains(self.driver).send_keys(Keys.ESCAPE).perform()
  • 解决方案3

尝试刷新屏幕,但通知仍然存在。

图片附后:

正在成功下载文件,但无法通过selenium关闭此通知。

EN

回答 1

Stack Overflow用户

发布于 2022-06-11 05:19:58

您正在对pptx使用不正确的MIME类型,以便可能会导致通知挂起,因此在更新之后进行,以查看它是否解决了该问题:

来自 application/pptx

to application/vnd.openxmlformats-officedocument.presentationml.presentation

有关MIME类型的更多信息可以在这里找到:常见MIME类型- HTTP \ MDN

更新

Mozilla已经从火狐97+中引入了一些变化,其中之一就是下载面板,而这种行为就是你所经历的。出于selenium的目的,您可以使用以下选项阻止面板打开:

代码语言:javascript
复制
options.set_preference("browser.download.alwaysOpenPanel", False)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72574184

复制
相关文章

相似问题

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