Skip to content

Commit 2a058c3

Browse files
AlexGalichenkoOleksandr_Halichenko
andauthored
added _I scroll to {string}_ step (#65)
Co-authored-by: Oleksandr_Halichenko <[email protected]>
1 parent b77cd0c commit 2a058c3

File tree

9 files changed

+390
-345
lines changed

9 files changed

+390
-345
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how
88
:beetle: - bugfix
99
:x: - deprecation
1010

11+
## [0.31.0]
12+
- :rocket: added _I scroll to {string}_ step
13+
1114
## [0.30.0]
1215
Deprecated:
1316
- :x: screenshot property moved to browser/driver config.

package-lock.json

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

package.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@qavajs/steps-playwright",
3-
"version": "0.30.0",
3+
"version": "0.31.0",
44
"description": "steps to interact with playwright",
55
"main": "./index.js",
66
"scripts": {
@@ -23,11 +23,11 @@
2323
},
2424
"homepage": "https://github.com/qavajs/steps-playwright#readme",
2525
"devDependencies": {
26-
"@cucumber/cucumber": "^9.3.0",
27-
"@qavajs/cli": "^0.27.0",
26+
"@cucumber/cucumber": "^9.4.0",
27+
"@qavajs/cli": "^0.28.0",
2828
"@qavajs/console-formatter": "^0.5.0",
29-
"@qavajs/html-formatter": "^0.13.0",
30-
"@qavajs/memory": "^1.6.1",
29+
"@qavajs/html-formatter": "^0.14.0",
30+
"@qavajs/memory": "^1.6.2",
3131
"@qavajs/po-playwright": "^0.11.0",
3232
"@qavajs/webstorm-adapter": "^8.0.0",
3333
"@qavajs/xunit-formatter": "^0.0.4",
@@ -38,11 +38,11 @@
3838
"express": "^4.18.2",
3939
"ts-node": "^10.9.1",
4040
"typescript": "^5.1.6",
41-
"vitest": "^0.33.0"
41+
"vitest": "^0.34.1"
4242
},
4343
"dependencies": {
44-
"@playwright/test": "^1.36.2",
44+
"@playwright/test": "^1.37.0",
4545
"@qavajs/validation": "^0.6.0",
46-
"playwright": "^1.36.2"
46+
"playwright": "^1.37.0"
4747
}
4848
}

src/actions.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,16 @@ When('I scroll by {string}', async function (offset: string) {
242242
}, [x, y]);
243243
});
244244

245+
/**
246+
* Scroll to element
247+
* @param {string} alias - alias of element
248+
* @example I scroll to 'Element'
249+
*/
250+
When('I scroll to {string}', async function (alias) {
251+
const element = await getElement(alias);
252+
await element.scrollIntoViewIfNeeded();
253+
});
254+
245255
/**
246256
* Scroll by provided offset in element
247257
* @param {string} - offset string in 'x, y' format

test-e2e/apps/scroll.html

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<title>@qavajs</title>
6+
<style>
7+
body {
8+
height: 4000px;
9+
width: 3000px;
10+
}
11+
#scrollElement {
12+
position: absolute;
13+
top: 3000px;
14+
left: 2000px;
15+
}
16+
</style>
17+
</head>
18+
<body>
19+
<div id="scrollElement">I'm here</div>
20+
</body>
21+
</html>

test-e2e/features/scroll.feature

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
Feature: scroll
2+
3+
Background:
4+
When I open '$scrollPage' url
5+
6+
Scenario: scroll to element wait
7+
When I scroll to 'Scroll Element'
8+
Then I wait until 'Scroll Element' to be in viewport
9+
10+
Scenario: scroll to element wait
11+
Then I expect 'Scroll Element' not to be in viewport

test-e2e/memory/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ export default class Memory {
99
mockPage = file(resolve('./test-e2e/apps/mock.html'));
1010
storagePage = file(resolve('./test-e2e/apps/storage.html'));
1111
dragDropPage = file(resolve('./test-e2e/apps/dragdrop.html'));
12-
12+
scrollPage = file(resolve('./test-e2e/apps/scroll.html'));
1313
array = (...args: Array<any>) => args;
1414

1515
// @ts-ignore

test-e2e/page_object/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ export default class App {
4848
EventHandler = $('#mouseEvent');
4949
KeyboardEventHandler = $('#keyboardEvent');
5050

51+
ScrollElement = $('#scrollElement');
5152
}
5253

5354
class IgnoreHierarchyComponent extends Component {

test-e2e/webui.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ const common = {
3434
memory: new Memory(),
3535
pageObject: new App(),
3636
parallel: 4,
37-
publishQuiet: true,
3837
retry: 1,
3938
service: [localServer],
4039
tags: 'not @skip'

0 commit comments

Comments
 (0)