From 04438651b656fb643db180c08926a01e70f1406f Mon Sep 17 00:00:00 2001 From: voidking Date: Fri, 1 Nov 2024 13:51:24 +0800 Subject: [PATCH] bugfix: #1547 Before calling serializeToString in mmdc_playwright.py, make sure the SVG element exists. --- metagpt/utils/mmdc_playwright.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/metagpt/utils/mmdc_playwright.py b/metagpt/utils/mmdc_playwright.py index e7e6e3b2e..53d2c4a2b 100644 --- a/metagpt/utils/mmdc_playwright.py +++ b/metagpt/utils/mmdc_playwright.py @@ -81,10 +81,13 @@ async def mermaid_to_file(mermaid_code, output_file_without_suffix, width=2048, if "svg" in suffixes: svg_xml = await page.evaluate( """() => { - const svg = document.querySelector('svg'); - const xmlSerializer = new XMLSerializer(); - return xmlSerializer.serializeToString(svg); - }""" + const svg = document.querySelector('svg'); + if (!svg) { + throw new Error('SVG element not found'); + } + const xmlSerializer = new XMLSerializer(); + return xmlSerializer.serializeToString(svg); + }""" ) logger.info(f"Generating {output_file_without_suffix}.svg..") with open(f"{output_file_without_suffix}.svg", "wb") as f: