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

Ubuntu22.04运行Robot Framework报Firefox Profile无法加载如何解决

问题说明
  • 运行环境:Ubuntu 22.04,使用Robot Framework开发自动化脚本,目标实现www.carvago.com网站的汽车搜索流程自动化
  • 已完成工作:导入RPA.Browser.Selenium库,编写了包含浏览器启动步骤的Search Car自定义关键字
  • 故障现象:脚本运行时弹出Your Firefox Profile cannot be loaded(Firefox配置文件无法加载)错误
  • 报错截图:
    Error 1
    Error 2
  • 完整脚本代码:
*** Settings ***
Documentation       Template robot main suite.

Library             Collections
Library             MyLibrary
Library             RPA.Browser.Selenium
Library             RPA.Excel.Files
Resource            keywords.robot
Variables           MyVariables.py

*** Variables *** 
${Browser}          Chrome
${SiteUrl}          https://carvago.com/

*** Keywords ***
Create Excel Report
    Create Workbook     /home/maaofficial/Documents/test_report_2.xlsx
    Save Workbook


Read Excel
    Open Workbook       /home/maaofficial/Documents/test_escape_list.xlsx
    ${list}     Read Worksheet      header=true
    Log To Console      ${list}
    Close Workbook
    FOR         ${index}    IN      @{list}
        Search Car      ${index}
    END

Search Car
    [Arguments]         ${index}
    Go To   ${SiteUrl}
    Maximize Browser Window
    Wait Until Element Is Visible       xpath:/html/body/div[1]/div/main/div[1]/div[1]/div[1]/div/div[1]/form/div[1]/div[1]/div/div/div/div/div[1]/div[2]
    Click Element                       xpath:/html/body/div[1]/div/main/div[1]/div[1]/div[1]/div/div[1]/form/div[1]/div[1]/div/div/div/div/div[1]/div[2]
    Press Keys      NONE    ${index}[make]
    Sleep   333ms
    Press Keys      NONE    TAB
    Click Element                       xpath:/html/body/div[1]/div/main/div[1]/div[1]/div[1]/div/div[1]/form/div[1]/div[2]/div/div
    Sleep   500ms
    Press Keys      NONE    ${index}[model]
    Sleep   333ms
    Press Keys      NONE    TAB
    Click Element                       xpath:/html/body/div[1]/div/main/div[1]/div[1]/div[1]/div/div[1]/form/div[1]/div[3]/div/div/input
    Sleep   500ms
    Press Keys      NONE    ${index}[max_km]
    Sleep   500ms
    # Click Minimize Button
    Click Element                        xpath:/html/body/div[1]/div/main/div[1]/div[1]/div[1]/div/div[1]/form/div[1]/div[3]/div/div/div[1]
    Sleep  333ms
    # Click Button Search
    Click Element                         xpath:/html/body/div[1]/div/main/div[1]/div[1]/div[1]/div/div[1]/form/div[2]/div[1]/button
    # Click Sort by Button
    Wait Until Element Is Visible         xpath:/html/body/div[1]/div/main/div[2]/div[2]/section/div/div[1]/div[2]/div[1]/div[2]/div/div    10s
    Sleep   3s
    Click Element                       xpath:/html/body/div[1]/div/main/div[2]/div[2]/section/div/div[1]/div[2]/div[1]/div[2]/div/div
    Sleep   3s
    # Click Lowest Price
    Click Element                       xpath:/html/body/div[8]/div/div/div/div[2]/div/div[6]/p
    Sleep   3s

    # Get Text Element
    ${name}                 Get Text                xpath:/html/body/div[1]/div/main/div[2]/div[2]/section/div/div[2]/div[1]/div/a/div/div[2]/h6
    Sleep   2s
    ${total_km}             Get Text                xpath:/html/body/div[1]/div/main/div[2]/div[2]/section/div/div[2]/div[1]/div/a/div/div[2]/div[1]/div[1]/span[2]
    Sleep   2s
    ${seller}               Get Text                xpath:/html/body/div[1]/div/main/div[2]/div[2]/section/div/div[2]/div[1]/div/a/div/div[2]/div[3]/div[1]/div/div[1]/div/div/span[2]
    Sleep   2s
    ${country}              Get Text                xpath:/html/body/div[1]/div/main/div[2]/div[2]/section/div/div[2]/div[1]/div/a/div/div[2]/div[3]/div[1]/div/div[2]/span
    Sleep   2s
    ${fuel}                 Get Text                xpath:/html/body/div[1]/div/main/div[2]/div[2]/section/div/div[2]/div[1]/div/a/div/div[2]/div[1]/div[5]/span[2]
    Sleep   2s
    ${transmission}         Get Text                xpath:/html/body/div[1]/div/main/div[2]/div[2]/section/div/div[2]/div[1]/div/a/div/div[2]/div[1]/div[4]/span[2]
    Sleep   2s
    ${price}                Get Text                xpath:/html/body/div[1]/div/main/div[2]/div[2]/section/div/div[2]/div[1]/div/a/div/div[2]/div[3]/div[2]/div/div[2]/div[2]/div/div[1]
    Sleep   2s
    
    ${car_dict}     Create Dictionary
    ...         name=${name}
    ...         total_km=${total_km}
    ...         seller=${seller}
    ...         country=${country}
    ...         fuel=${fuel}
    ...         transmission=${transmission}
    ...         price=${price}
    Log To Console      ${car_dict}

    Append To Excel  ${car_dict}


Append To Excel
    [Arguments]                 ${car_dict}
    Open Workbook               /home/maaofficial/Documents/test_report.xlsx
    Append Rows To Worksheet    ${car_dict}     header=True
    Save Workbook


*** Tasks ***
Main
    Create Excel Report
    Open Available Browser      ${SiteUrl}      ${Browser}
    Read Excel
    Close Browser
故障原因

脚本中虽然将${Browser}变量设为了Chrome,但Open Available Browser关键字会自动检测系统中可用的浏览器优先启动,出现Firefox相关报错说明自动选择逻辑命中了系统里的Firefox。Ubuntu 22.04默认预装的snap版本Firefox存在沙箱权限隔离,会导致RPA框架调用时无法访问用户配置文件目录,触发配置加载失败错误。

修复方案

按优先级依次尝试:

  1. 替换浏览器启动关键字,绕开自动选择逻辑
    将任务中Open Available Browser ${SiteUrl} ${Browser}替换为明确指定浏览器的启动语句,强制使用Chrome:
    Open Browser    ${SiteUrl}    chrome    options=add_argument("--user-data-dir=/tmp/rpa_chrome_temp")
    
    附加参数指定了临时配置目录,完全避免加载本地损坏/权限异常的浏览器配置。
  2. 修复本地Firefox权限问题(如果需要保留Firefox作为备用浏览器)
    执行终端命令修复snap版Firefox的配置目录所有权:
    sudo chown -R $USER:$USER ~/snap/firefox/common/.mozilla/firefox/
    
    如果修复后仍报错,直接卸载snap版Firefox,通过apt源安装非沙箱版本即可解决权限问题。
  3. 校验Chrome运行环境
    确保系统安装的Chrome浏览器版本和RPA.Browser.Selenium自动下载的chromedriver版本匹配,如果自动下载驱动失败,手动下载对应大版本的chromedriver放到/usr/bin目录下并赋予可执行权限。

内容的提问来源于stack exchange,提问作者Mokhamad Aulia

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 06:27:25