You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Selenium+Robot Framework设置Chrome下载PDF而非新标签打开

解决方法

你当前使用的plugins.plugins_disabled参数对新版Chrome已经失效,且代码中存在变量名拼写不一致的问题,按以下方式调整配置即可:

  1. 修正ChromeOptions的首选项配置,将PDF相关的控制参数替换为新版Chrome支持的配置项
  2. 修正变量名拼写错误(原代码中定义的变量是${chrome options},日志打印时写的是${chrome_options},存在空格和下划线的拼写差异)

修正后的完整关键字代码如下:

*** Settings ***
Documentation    Common setup and teardown steps
Library    SeleniumLibrary
Resource   UtilManager.robot

*** Keywords ***
Begin Test
    [Arguments]     ${BROWSER}      ${BASE_URL}

    @{workingDirs}      UtilManager.Get Current Working Directories
    # 转换为Chrome支持的绝对路径下载目录
    ${download_dir}=    Convert To Path    ${workingDirs}[1]
    ${download_dir}=    Get Absolute Path    ${download_dir}

    ${chrome_options}=    Evaluate    sys.modules['selenium.webdriver'].ChromeOptions()    sys, selenium.webdriver
    Log     ${chrome_options}
    # 新版Chrome禁用内置PDF阅读器、强制下载的配置
    ${prefs}    Create Dictionary
    ...    download.default_directory=${download_dir}
    ...    download.prompt_for_download=False
    ...    download.directory_upgrade=True
    ...    plugins.always_open_pdf_externally=True
    Call Method    ${chrome_options}    add_experimental_option    prefs    ${prefs}
    Create Webdriver    ${BROWSER}    chrome_options=${chrome_options}

    Go To    ${BASE_URL}
    Maximize Browser Window

额外注意事项

  • 如果使用Chrome无头模式运行用例,需要额外添加启动参数--headless=new,旧版无头模式不支持下载配置
  • 确认Chrome浏览器和对应ChromeDriver的大版本号一致,避免版本不兼容导致配置失效

内容的提问来源于stack exchange,提问作者Avik Datta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 19:06:03