diff --git a/lib/core/utils/dq-element.js b/lib/core/utils/dq-element.js index acb9fae0..b66e48f2 100644 --- a/lib/core/utils/dq-element.js +++ b/lib/core/utils/dq-element.js @@ -281,12 +281,17 @@ function getSourceOpt(element) { } function getSource(element) { - if (!element) { + if (!element?.outerHTML) { return ''; } - - // a11y-engine changes - use truncateElement which handles regex replacement - return truncateElement(element); + let source = element.outerHTML; + if (!source && typeof window.XMLSerializer === 'function') { + source = new window.XMLSerializer().serializeToString(element); + } + // a11y-engine changes - use truncate which handles regex replacement + const regex = /\s*data-percy-[^=]+="[^"]*"/g; // Remove unwanted attributes + source = (source || '').replace(regex, ''); + return truncate(source); } /**