From d96970d16d16beb09d7877a376ade84727a67544 Mon Sep 17 00:00:00 2001 From: Alex Rudenko Date: Tue, 18 Jul 2023 13:16:41 +0200 Subject: [PATCH] fix: use correct frame target Previous PR caused a regression here that was masked by another issue. localFrame should be the one used for selectors. TargetPageOrFrame should only be used to access non-local frame. Perhaps we could refactor this in the future. --- src/PuppeteerRunnerExtension.ts | 30 +++++++++++++++--------------- test/runner.test.ts | 2 +- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/PuppeteerRunnerExtension.ts b/src/PuppeteerRunnerExtension.ts index aa190ec3..f1d2ecdb 100644 --- a/src/PuppeteerRunnerExtension.ts +++ b/src/PuppeteerRunnerExtension.ts @@ -124,9 +124,9 @@ export class PuppeteerRunnerExtension extends RunnerExtension { case StepType.DoubleClick: await locatorRace( step.selectors.map((selector) => { - return ( - targetPageOrFrame as unknown as InternalPage | InternalFrame - ).locator(selectorToPElementSelector(selector)); + return (localFrame as unknown as InternalFrame).locator( + selectorToPElementSelector(selector) + ); }) ) .setTimeout(timeout) @@ -146,9 +146,9 @@ export class PuppeteerRunnerExtension extends RunnerExtension { case StepType.Click: await locatorRace( step.selectors.map((selector) => { - return ( - targetPageOrFrame as unknown as InternalPage | InternalFrame - ).locator(selectorToPElementSelector(selector)); + return (localFrame as unknown as InternalFrame).locator( + selectorToPElementSelector(selector) + ); }) ) .setTimeout(timeout) @@ -167,9 +167,9 @@ export class PuppeteerRunnerExtension extends RunnerExtension { case StepType.Hover: await locatorRace( step.selectors.map((selector) => { - return ( - targetPageOrFrame as unknown as InternalPage | InternalFrame - ).locator(selectorToPElementSelector(selector)); + return (localFrame as unknown as InternalFrame).locator( + selectorToPElementSelector(selector) + ); }) ) .setTimeout(timeout) @@ -209,9 +209,9 @@ export class PuppeteerRunnerExtension extends RunnerExtension { case StepType.Change: await locatorRace( step.selectors.map((selector) => { - return ( - targetPageOrFrame as unknown as InternalPage | InternalFrame - ).locator(selectorToPElementSelector(selector)); + return (localFrame as unknown as InternalFrame).locator( + selectorToPElementSelector(selector) + ); }) ) .on('action' as LocatorEmittedEvents.Action, () => @@ -231,9 +231,9 @@ export class PuppeteerRunnerExtension extends RunnerExtension { if ('selectors' in step) { await locatorRace( step.selectors.map((selector) => { - return ( - targetPageOrFrame as unknown as InternalPage | InternalFrame - ).locator(selectorToPElementSelector(selector)); + return (localFrame as unknown as InternalFrame).locator( + selectorToPElementSelector(selector) + ); }) ) .on('action' as LocatorEmittedEvents.Action, () => diff --git a/test/runner.test.ts b/test/runner.test.ts index b9e19d72..c9d92e89 100644 --- a/test/runner.test.ts +++ b/test/runner.test.ts @@ -218,7 +218,7 @@ describe('Runner', () => { }, { type: StepType.Click, - selectors: [['.parent', '.child']], + selectors: ['.parent > .child'], offsetX: 1, offsetY: 1, },