【问题标题】:Downloaded files using Selenium and ChromeDriver visible only to the browser使用 Selenium 和 ChromeDriver 下载的文件仅对浏览器可见
【发布时间】:2021-08-13 22:46:31
【问题描述】:

我正在使用 Selenium 和 Chrome 来模拟单击下载 PDF 文件的按钮。一切正常,Chrome 显示下载成功,单击 Chrome 上的文件会打开并充分显示文件。但是,当我尝试从文件管理器或任何其他应用程序(包括ls -a 作为超级用户)访问文件时,下载的文件不存在。这是 Selenium/Chrome 故意做的吗?有什么办法可以规避吗?

我在 Xubuntu 20.04.2 LTS 上运行 Python 3.8.5。 Selenium 是 3.141.0 版本,ChromeDriver 是 90.0.4430.212。

这是我初始化 webdriver 的方式:

from tempfile import TemporaryDirectory
from selenium import webdriver

self.tmpdir = TemporaryDirectory()
options = webdriver.ChromeOptions()
options.add_experimental_option("prefs", {
    "download.default_directory":   self.tmpdir.name,
    "download.prompt_for_download": False,
    "download.directory_upgrade":   True,
    "safebrowsing.enabled":         True
    })
options.add_argument('window-size=1366x768')
self.webdriver = webdriver.Chrome(options=options)
self.webdriver.implicitly_wait(25)

【问题讨论】:

  • 在执行过程中会下载到当前根文件夹的项目文件夹中。你能检查一下它是否在那里。
  • 是的,我可以:下载的文件没有显示在项目目录中。在 Chrome 中打开 PDF 在地址栏中显示file:///tmp/[TEMPORARYDIR]/[FILENAME].pdf,这也不是项目的目录。
  • 你签入临时目录了吗?
  • 是的,这对我来说很奇怪。使用 python 的 TemporaryDirectory() 创建的文件夹对于 ls -a 和文件管理器来说是完全空的,即使生成的 Chrome 窗口告诉我 PDF 在那里。

标签: python selenium selenium-webdriver selenium-chromedriver


【解决方案1】:

当我尝试保存到家外的目录时发生这种情况,更改为保存在家里解决了这个问题。

以下链接阐明了原因: https://askubuntu.com/questions/1184357/why-cant-chromium-suddenly-access-any-partition-except-for-home

【讨论】:

    猜你喜欢
    • 2018-11-15
    • 2017-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 2018-11-10
    相关资源
    最近更新 更多