Skip to content

Commit fd49041

Browse files
authored
flow behaviors: add scrolling into view (#892)
Some page elements don't quite respond correctly if the element is not in view, so should add the setEnsureElementIsInTheViewport() to click, doubleclick, hover and change step locators.
1 parent cc2d890 commit fd49041

File tree

2 files changed

+6
-7
lines changed

2 files changed

+6
-7
lines changed

src/util/flowbehavior.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -368,7 +368,7 @@ class Flow {
368368
case StepType.DoubleClick:
369369
await locator(step)
370370
.setTimeout(timeout * 1000)
371-
//.on('action', () => startWaitingForEvents())
371+
.setEnsureElementIsInTheViewport(true)
372372
.click({
373373
count: 2,
374374
button: step.button && mouseButtonMap.get(step.button),
@@ -392,7 +392,7 @@ class Flow {
392392

393393
await locator(step)
394394
.setTimeout(timeout * 1000)
395-
//.on('action', () => startWaitingForEvents())
395+
.setEnsureElementIsInTheViewport(true)
396396
.click({
397397
delay: step.duration,
398398
button: step.button && mouseButtonMap.get(step.button),
@@ -410,7 +410,7 @@ class Flow {
410410
case StepType.Hover:
411411
await locator(step)
412412
.setTimeout(timeout * 1000)
413-
//.on('action', () => startWaitingForEvents())
413+
.setEnsureElementIsInTheViewport(true)
414414
.hover();
415415
break;
416416

@@ -426,15 +426,14 @@ class Flow {
426426

427427
case StepType.Change:
428428
await locator(step)
429-
//.on('action', () => startWaitingForEvents())
430429
.setTimeout(timeout * 1000)
430+
.setEnsureElementIsInTheViewport(true)
431431
.fill(step.value);
432432
break;
433433

434434
case StepType.Scroll: {
435435
if ("selectors" in step) {
436436
await locator(step)
437-
//.on('action', () => startWaitingForEvents())
438437
.setTimeout(timeout * 1000)
439438
.scroll({
440439
scrollLeft: step.x || 0,

tests/custom_selector.test.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ test("test custom selector crawls JS files as pages", async () => {
4343
]);
4444

4545
const expectedExtraPages = new Set([
46-
"https://www.iana.org/_js/jquery.js",
47-
"https://www.iana.org/_js/iana.js",
46+
"https://www.iana.org/static/_js/jquery.js",
47+
"https://www.iana.org/static/_js/iana.js",
4848
]);
4949

5050
expect(pages).toEqual(expectedPages);

0 commit comments

Comments
 (0)