当前位置: 首页 > 面试题库 >

使用Selenium,Chrome和Python下载PDF

张坚白
2023-03-14
问题内容

我的脚本必须使用一组凭据登录到站点,然后在某些下拉菜单中导航以选择报告。选择报告后,将弹出一个新窗口,必须在其中调整参数以生成报告。设置完参数后,相同的弹出窗口将以生成的PDF格式刷新报告,并使用Chrome的内置PDF查看器显示。我的印象是,将某些选项传递给webdriver会禁用此PDF查看器,而只是下载文件,但是PDF查看器仍在显示,不会自动下载任何内容。我当然会丢失某些东西,或者我写的东西不正确。这是我的代码的要旨:

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_experimental_option('prefs',  {
    "download.default_directory": download_dir,
    "download.prompt_for_download": False,
    "download.directory_upgrade": True,
    "plugins.plugins_disabled": ["Chrome PDF Viewer"]
    }
)

browser = webdriver.Chrome(options = chrome_options)

driver = webdriver.Chrome()
driver.get(url)

#In between here are a bunch of steps here that navigates through drop down menus

#This step may not be necessary, but I figured I'd include it to address when the pop up window refreshes and displays the report in PDF format through Chrome's PDF viewer
driver.switch_to.window(driver.window_handles[1])

因此,即使我之前禁用了Chrome浏览器,Chrome仍会显示它。没有下载任何内容,因此我想知道是否需要提供另一行代码或其他内容。

在Windows 10上使用Selenium版本3.141.0,Python 3.6.4,Chrome webdriver 2.45。


问题答案:

您需要更换 "plugins.plugins_disabled": ["Chrome PDF Viewer"]

带有:

"plugins.always_open_pdf_externally": True

希望这对您有所帮助!



 类似资料:
  • 我试着跟随以前关于这个主题的帖子,比如这些(帖子1,帖子2),但我仍然被困住了。 所以,在这一点上,Chrome仍然显示PDF查看器,尽管我之前禁用了它。没有下载任何东西,所以我想知道我是否需要提供另一行代码或其他东西。 在Windows 10上使用Selenium版本3.141.0、Python 3.6.4、Chrome webdriver 2.45。

  • 我编写了以下代码来禁用ChromePDF查看器,以便在Chrome打开链接时,PDF文件可以在C:\下载文件夹中自动下载。 不幸的是,我相信PDF查看器没有被正确禁用。以下是我打开PDF url时使用此代码得到的结果: 有没有其他解决方案可以在Chrome中自动下载文件?

  • 问题内容: 这是我的情况:我必须登录到一个网站并从那里下载CSV,而从linux服务器无头。该页面使用JS,没有它就无法工作。 经过一些研究,我选择了Selenium和PhantomJS。登录,设置CSV参数并使用Selenium / PhantomJS / Py3查找下载按钮没有问题,实际上令人称奇。 但是单击下载按钮没有任何作用。经过一番研究,我发现PhantomJS似乎不支持下载对话框和下载

  • 问题内容: from selenium import webdriver from selenium.webdriver.chrome.options import Options 但这仅会导致以下错误: 那么如何解决呢?我是否必须使用这种“功能”?如果是这样,究竟如何? 问题答案: 试试这个。在Windows上执行 如何在Chrome中控制具有SeleniumPython绑定的文件的下载

  • 我很难在Python中用Selenium Chrome下载文件,并使用headless模式。我在这里检查了几个答案,大多数都是一样的。他们谈论增加偏好和实验选项。 使用python selenium下载 Selenium WebDriver:如何用Python下载PDF文件? Ubuntu:20.04 Python:3.8.2 Chromeium-Browser:Chromium 80.0.398

  • 我想使用硒下载chrome中的pdf。 我尝试了上述代码,但不起作用