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

如何用Robot Framework获取Chrome控制台全级别日志?

获取Chrome所有级别控制台日志的Robot Framework解决方案

你的问题出在日志能力的配置方式上,虽然你设置了browser=ALL,但通过desired_capabilities传递可能在Chrome中不生效,改用ChromeOptions配置是更可靠的方式。以下是修改后的完整代码和关键说明:

修改后的代码

Resource           ../../Resources/LoginKeywordsAndVariables.robot
Library    SeleniumLibrary
Library    OperatingSystem
Library    Collections
Suite Setup    Valid Login
Library    json

*** Variables ***
# 用ChromeOptions配置日志偏好,指定获取所有级别控制台日志
&{chrome_options}    goog:loggingPrefs=${{"browser": "ALL"}}

*** Test Cases ***
Get All Console Logs
    # 先执行打开新页面的操作(示例:替换为实际打开新页的元素定位)
    Click Element    xpath://your-new-page-link
    # 切换到新打开的页面
    Switch Window    NEW
    # 获取并写入日志
    Write logs

*** Keywords ***
Valid Login
    # 使用options参数传递Chrome配置,替代原desired_capabilities
    Open Browser    ${LOGIN URL}    chrome    options=${chrome_options}
    Input Username    xxx
    Input Login Password    xx
    Submit Credentials
    Element Text Should Be     xpath://a[@id="first_user_info_area"]    xxx

Get Browser Console Logs
    ${selenium}=    Get Library Instance    SeleniumLibrary
    ${webdriver}=    Set Variable     ${selenium._drivers.active_drivers}[0]
    ${logs}=    Evaluate    $webdriver.get_log('browser')
    RETURN   ${logs}

Write logs
    ${logs}=    Get Browser Console Logs
    FOR    ${log}    IN    ${logs}
        Log    ${log}\n
    END

    ${file_path} =    Set Variable    consolelogs.txt
    Create File    ${file_path}
    FOR    ${log}    IN    ${logs}
        ${log_json} =    Evaluate    json.dumps($log, indent=4)
        Append To File    ${file_path}    ${log_json}\n
    END
    Log    Logs written to ${file_path}

关键修改点

  1. 替换配置方式:用ChromeOptions的goog:loggingPrefs替代desired_capabilities,这是ChromeDriver推荐的配置方式,避免兼容性问题。
  2. 确保操作时机:必须在目标页面加载完成后调用Get Browser Console Logs,比如打开新页面后切换窗口再获取日志,否则只能拿到之前页面的日志。
  3. 日志级别说明:browser=ALL会包含所有级别日志(DEBUG、INFO、WARNING、SEVERE),你可以通过日志条目的level字段区分不同级别。

额外注意事项

  • 确保ChromeDriver版本与Chrome浏览器版本完全匹配,版本不兼容可能导致日志获取失败。
  • 如果仍有部分日志无法获取,检查Chrome的启动参数是否限制了日志输出,比如是否有--disable-logging之类的参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 11:28:21