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

如何将Bokeh图表嵌入Robot Framework HTML报告中?

解决Bokeh图表嵌入Robot Framework HTML报告失败的问题

问题根源

  1. 缺少Bokeh依赖资源:Bokeh的嵌入式组件需要加载对应的JS和CSS才能渲染,报告中未引入这些资源会导致注入的脚本无法被解析执行。
  2. 组件输出方式错误:分开用logger.info输出script和div,可能被Robot Framework的报告HTML结构拆分,打乱组件加载顺序。
  3. 代码遗漏导入:原代码未导入bokeh.embed模块,运行时会抛出模块未找到的错误。

修正后的代码

from robot.api import logger
from bokeh.plotting import figure
from bokeh.embed import components  # 补上缺失的导入

class customreport(object):
    def my_test_keyword(self, message):
        # 创建Bokeh图表
        p = figure()
        p.circle([1, 2, 3], [4, 5, 6])
        
        # 获取嵌入式组件的script和div
        script, div = components(p)
        
        # 引入Bokeh的样式和脚本(需确保文件在报告可访问路径下)
        # 替换为本地Bokeh安装目录的对应文件,或复制到报告资源文件夹用相对路径
        bokeh_css = '<link rel="stylesheet" href="bokeh.min.css" type="text/css">'
        bokeh_js = '<script src="bokeh.min.js"></script>'
        
        # 合并所有内容后一次性注入,保证顺序正确
        full_html = f"{bokeh_css}\n{bokeh_js}\n{script}\n{div}"
        logger.info(full_html, html=True)

关键说明

  • 依赖资源准备:从本地安装的Bokeh包中找到bokeh.min.css和bokeh.min.js文件(通常在site-packages/bokeh/server/static目录下),复制到Robot Framework报告所在文件夹,确保报告能访问到这些资源。
  • 合并输出组件:将资源链接、script、div合并后一次性注入,避免报告HTML结构拆分组件,保证加载顺序正确。
  • 版本匹配:使用的CSS/JS文件版本必须和代码中Bokeh版本一致,防止兼容性报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 18:20:14