Skip to content

Commit 6a73c5c

Browse files
Merge pull request #4 from qavajs/fix-switch-frame-tab
fixed switch to frame/tab steps
2 parents 541f3a3 + 2d1e099 commit 6a73c5c

File tree

3 files changed

+24
-11
lines changed

3 files changed

+24
-11
lines changed

package-lock.json

Lines changed: 9 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@qavajs/steps-playwright",
3-
"version": "0.0.3",
3+
"version": "0.0.4",
44
"description": "steps to interact with playwright",
55
"main": "./index.js",
66
"scripts": {
@@ -33,7 +33,7 @@
3333
"dependencies": {
3434
"@playwright/test": "^1.27.1",
3535
"@qavajs/memory": "^1.1.0",
36-
"@qavajs/po-playwright": "^0.0.1",
36+
"@qavajs/po-playwright": "^0.0.4",
3737
"@qavajs/validation": "^0.0.2",
3838
"playwright": "^1.27.1"
3939
}

src/actions.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { When } from '@cucumber/cucumber';
22
import { getValue, getElement } from './transformers';
33
import { po } from '@qavajs/po-playwright';
4+
import { expect } from '@playwright/test';
45

56
/**
67
* Opens provided url
@@ -79,6 +80,10 @@ When('I switch to parent frame', async function () {
7980
* @example I switch to 2 frame
8081
*/
8182
When('I switch to {int} frame', async function (index: number) {
83+
await expect.poll(
84+
() => page.frames()?.length,
85+
{ timeout: config.browser.timeout.page }
86+
).toBeGreaterThan(index);
8287
// @ts-ignore
8388
po.driver = page.frames()[index];
8489
});
@@ -89,7 +94,15 @@ When('I switch to {int} frame', async function (index: number) {
8994
* @example I switch to 2 window
9095
*/
9196
When('I switch to {int} window', async function (index: number) {
97+
await expect.poll(
98+
() => browser.contexts()?.length,
99+
{ timeout: config.browser.timeout.page }
100+
).toBeGreaterThan(index - 1);
92101
global.context = browser.contexts()[index - 1];
102+
await expect.poll(
103+
() => context.pages()?.length,
104+
{ timeout: config.browser.timeout.page }
105+
).toBeGreaterThan(index - 1);
93106
global.page = context.pages()[index - 1];
94107
//@ts-ignore
95108
po.driver = page;

0 commit comments

Comments
 (0)