fix(browser): persist role refs per targetId

This commit is contained in:
Peter Steinberger
2026-01-15 09:56:19 +00:00
parent 84e9401d53
commit d5d33d4848
10 changed files with 119 additions and 4 deletions

View File

@@ -6,7 +6,12 @@ import {
getRoleSnapshotStats,
type RoleSnapshotOptions,
} from "./pw-role-snapshot.js";
import { ensurePageState, getPageForTargetId, type WithSnapshotForAI } from "./pw-session.js";
import {
ensurePageState,
getPageForTargetId,
rememberRoleRefsForTarget,
type WithSnapshotForAI,
} from "./pw-session.js";
export async function snapshotAriaViaPlaywright(opts: {
cdpUrl: string;
@@ -97,6 +102,14 @@ export async function snapshotRoleViaPlaywright(opts: {
const built = buildRoleSnapshotFromAriaSnapshot(String(ariaSnapshot ?? ""), opts.options);
state.roleRefs = built.refs;
state.roleRefsFrameSelector = frameSelector || undefined;
if (opts.targetId) {
rememberRoleRefsForTarget({
cdpUrl: opts.cdpUrl,
targetId: opts.targetId,
refs: built.refs,
frameSelector: frameSelector || undefined,
});
}
return {
snapshot: built.snapshot,
refs: built.refs,