diff --git a/src/actions.ts b/src/actions.ts index 8b7661e..26f2408 100644 --- a/src/actions.ts +++ b/src/actions.ts @@ -1056,7 +1056,8 @@ async function handleContent( let html: string; if (command.selector) { - html = await page.locator(command.selector).innerHTML(); + const locator = browser.getLocator(command.selector); + html = await locator.innerHTML(); } else { html = await page.content(); } @@ -1704,8 +1705,8 @@ async function handleIsChecked( } async function handleCount(command: CountCommand, browser: BrowserManager): Promise { - const page = browser.getPage(); - const count = await page.locator(command.selector).count(); + const locator = browser.getLocator(command.selector); + const count = await locator.count(); return successResponse(command.id, { count }); } @@ -1713,8 +1714,8 @@ async function handleBoundingBox( command: BoundingBoxCommand, browser: BrowserManager ): Promise { - const page = browser.getPage(); - const box = await page.locator(command.selector).boundingBox(); + const locator = browser.getLocator(command.selector); + const box = await locator.boundingBox(); return successResponse(command.id, { box }); } @@ -2109,7 +2110,7 @@ async function handleWheel(command: WheelCommand, browser: BrowserManager): Prom const page = browser.getPage(); if (command.selector) { - const element = page.locator(command.selector); + const element = browser.getLocator(command.selector); await element.hover(); } @@ -2148,14 +2149,14 @@ async function handleHighlight( command: HighlightCommand, browser: BrowserManager ): Promise { - const page = browser.getPage(); - await page.locator(command.selector).highlight(); + const locator = browser.getLocator(command.selector); + await locator.highlight(); return successResponse(command.id, { highlighted: true }); } async function handleClear(command: ClearCommand, browser: BrowserManager): Promise { - const page = browser.getPage(); - await page.locator(command.selector).clear(); + const locator = browser.getLocator(command.selector); + await locator.clear(); return successResponse(command.id, { cleared: true }); } @@ -2163,8 +2164,8 @@ async function handleSelectAll( command: SelectAllCommand, browser: BrowserManager ): Promise { - const page = browser.getPage(); - await page.locator(command.selector).selectText(); + const locator = browser.getLocator(command.selector); + await locator.selectText(); return successResponse(command.id, { selected: true }); } @@ -2172,8 +2173,8 @@ async function handleInnerText( command: InnerTextCommand, browser: BrowserManager ): Promise { - const page = browser.getPage(); - const text = await page.locator(command.selector).innerText(); + const locator = browser.getLocator(command.selector); + const text = await locator.innerText(); return successResponse(command.id, { text }); } @@ -2182,7 +2183,8 @@ async function handleInnerHtml( browser: BrowserManager ): Promise { const page = browser.getPage(); - const html = await page.locator(command.selector).innerHTML(); + const locator = browser.getLocator(command.selector); + const html = await locator.innerHTML(); return successResponse(command.id, { html, origin: page.url() }); } @@ -2200,8 +2202,8 @@ async function handleSetValue( command: SetValueCommand, browser: BrowserManager ): Promise { - const page = browser.getPage(); - await page.locator(command.selector).fill(command.value); + const locator = browser.getLocator(command.selector); + await locator.fill(command.value); return successResponse(command.id, { set: true }); } @@ -2209,8 +2211,8 @@ async function handleDispatch( command: DispatchEventCommand, browser: BrowserManager ): Promise { - const page = browser.getPage(); - await page.locator(command.selector).dispatchEvent(command.event, command.eventInit); + const locator = browser.getLocator(command.selector); + await locator.dispatchEvent(command.event, command.eventInit); return successResponse(command.id, { dispatched: command.event }); } @@ -2360,8 +2362,7 @@ async function handleGetByTestId( } async function handleNth(command: NthCommand, browser: BrowserManager): Promise { - const page = browser.getPage(); - const base = page.locator(command.selector); + const base = browser.getLocator(command.selector); const locator = command.index === -1 ? base.last() : base.nth(command.index); switch (command.subaction) { @@ -2528,8 +2529,8 @@ async function handleMultiSelect( command: MultiSelectCommand, browser: BrowserManager ): Promise { - const page = browser.getPage(); - const selected = await page.locator(command.selector).selectOption(command.values); + const locator = browser.getLocator(command.selector); + const selected = await locator.selectOption(command.values); return successResponse(command.id, { selected }); } @@ -2738,7 +2739,7 @@ async function handleDiffScreenshot( const page = browser.getPage(); let screenshotBuffer: Buffer; if (command.selector) { - const locator = browser.getLocatorFromRef(command.selector) || page.locator(command.selector); + const locator = browser.getLocator(command.selector); screenshotBuffer = await locator.screenshot({ type: 'png' }); } else { screenshotBuffer = await page.screenshot({ fullPage: command.fullPage, type: 'png' });