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

RobotFramework+SeleniumLibrary:浏览器启动但无法跳转指定URL求助

RobotFramework 结合 SeleniumLibrary 启动 Chrome 失败问题排查

环境配置

  • IDE:Pycharm
  • Python 版本:3.7.5
  • Robot Framework 版本:3.1.2
  • Selenium 版本:3.141.0
  • 已安装相关依赖包及 Intellibot 插件
  • Chrome 浏览器版本:112.0.5615.121,匹配的 ChromeDriver(112.0.5615.49)存放于 Python37 的 Scripts 文件夹,路径已加入系统环境变量
  • 操作环境:客户远程桌面

初始代码及问题表现

初始测试代码:

*** Settings ***
Library    SeleniumLibrary

*** Test Cases ***

Testcase name: Launch and Navigate:
        open browser    www.google.com      chrome

运行后 Chrome 启动,但地址栏显示data:,并停滞;关闭浏览器后终端报错:

WebDriverException: Message: unknown error: Chrome failed to start: exited normally.
  (unknown error: DevToolsActivePort file doesn't exist)
  (The process started from chrome location C:\Program Files (x86)\Google\Chrome\Application\chrome.exe is no longer running, so ChromeDriver is assuming that Chrome has crashed.)

尝试过的代码

*** Settings ***

Library    SeleniumLibrary

*** Variables ***

${url}      https://www.google.com
${driver_path}      C:/Program Files/Python37/Scripts/chromedriver


*** Test Cases ***
TC_01Launch

        ${chrome_options}=  Evaluate  sys.modules['selenium.webdriver'].ChromeOptions()  sys, selenium.webdriver

        Call Method    ${chrome_options}    add_argument    --no-sandbox
        Create Webdriver  Chrome    executable_path=${driver_path}      
        Open Browser    ${url}    chrome        options=${chrome_options}

问题分析与解决方案

这个问题属于远程桌面环境下 Chrome 启动的配置+代码逻辑混合问题,可通过以下方式解决:

核心原因

远程桌面环境中,Chrome 默认启动逻辑会因会话权限、图形界面限制等导致 DevToolsActivePort 文件无法生成,被 ChromeDriver 判定为浏览器崩溃;同时你尝试的代码中存在重复初始化浏览器实例的冲突。

具体解决步骤

  1. 修正代码逻辑并补充必要启动参数
    去掉重复的Create Webdriver调用,添加适配远程桌面的 Chrome 参数,简化后代码如下:

    *** Settings ***
    Library    SeleniumLibrary
    
    *** Variables ***
    ${url}    https://www.google.com
    
    *** Test Cases ***
    TC_01_Launch_Chrome_To_Google
        # 初始化Chrome配置对象
        ${chrome_options}=    Evaluate    sys.modules['selenium.webdriver'].ChromeOptions()    sys, selenium.webdriver
        # 添加远程桌面必备参数
        Call Method    ${chrome_options}    add_argument    --no-sandbox
        Call Method    ${chrome_options}    add_argument    --disable-dev-shm-usage
        Call Method    ${chrome_options}    add_argument    --remote-debugging-port=9222
        # 若远程桌面无可视化界面,需添加无头模式参数(Selenium3用--headless,Selenium4+用--headless=new)
        # Call Method    ${chrome_options}    add_argument    --headless
        # 启动浏览器并打开目标地址
        Open Browser    ${url}    chrome    options=${chrome_options}
        # 可选:验证页面加载完成
        Wait Until Page Contains    Google
        Close Browser
    
  2. 环境配置验证

    • 执行chromedriver --version验证 ChromeDriver 是否能被系统正常调用
    • 确认当前用户对 Chrome 安装目录、Python Scripts 文件夹有读写权限
  3. 关键注意点

    • 不要同时使用Create Webdriver和Open Browser,二者都是初始化浏览器实例,重复调用会导致冲突
    • 若远程桌面是无图形化环境,必须启用无头模式参数,否则浏览器无法启动

内容的提问来源于stack exchange,提问作者Learn shibu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 10:54:59