diff --git a/packages/playwright-core/src/server/trace/recorder/snapshotterInjected.ts b/packages/playwright-core/src/server/trace/recorder/snapshotterInjected.ts index 31c9712992..176b9a7e28 100644 --- a/packages/playwright-core/src/server/trace/recorder/snapshotterInjected.ts +++ b/packages/playwright-core/src/server/trace/recorder/snapshotterInjected.ts @@ -265,6 +265,12 @@ export function frameSnapshotStreamer(snapshotStreamer: string) { return; if (nodeName === 'SCRIPT') return; + // Don't preload resources. + if (nodeName === 'LINK' && nodeType === Node.ELEMENT_NODE) { + const rel = (node as Element).getAttribute('rel')?.toLowerCase(); + if (rel === 'preload' || rel === 'prefetch') + return; + } if (this._removeNoScript && nodeName === 'NOSCRIPT') return; if (nodeName === 'META' && (node as HTMLMetaElement).httpEquiv.toLowerCase() === 'content-security-policy') diff --git a/packages/playwright-core/src/web/traceViewer/snapshotRenderer.ts b/packages/playwright-core/src/web/traceViewer/snapshotRenderer.ts index e64aab763b..17661e27bc 100644 --- a/packages/playwright-core/src/web/traceViewer/snapshotRenderer.ts +++ b/packages/playwright-core/src/web/traceViewer/snapshotRenderer.ts @@ -59,8 +59,12 @@ export class SnapshotRenderer { // Element node. const builder: string[] = []; builder.push('<', n[0]); - for (const [attr, value] of Object.entries(n[1] || {})) - builder.push(' ', attr, '="', escapeAttribute(value as string), '"'); + // Never set relative URLs as ') + if (text === '') break; await page.waitForTimeout(250); }