artes 1.2.16 → 1.2.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +629 -533
- package/cucumber.config.js +171 -171
- package/docs/functionDefinitions.md +2401 -2401
- package/docs/stepDefinitions.md +391 -352
- package/executer.js +161 -161
- package/index.js +48 -48
- package/package.json +52 -51
- package/src/helper/contextManager/browserManager.js +63 -63
- package/src/helper/contextManager/requestManager.js +23 -23
- package/src/helper/controller/elementController.js +182 -182
- package/src/helper/controller/pomCollector.js +25 -25
- package/src/helper/executers/cleaner.js +19 -19
- package/src/helper/executers/exporter.js +15 -15
- package/src/helper/executers/helper.js +95 -95
- package/src/helper/executers/projectCreator.js +198 -198
- package/src/helper/executers/reportGenerator.js +58 -58
- package/src/helper/executers/testRunner.js +30 -30
- package/src/helper/executers/versionChecker.js +31 -31
- package/src/helper/imports/commons.js +56 -56
- package/src/helper/stepFunctions/APIActions.js +362 -362
- package/src/helper/stepFunctions/assertions.js +523 -523
- package/src/helper/stepFunctions/browserActions.js +22 -22
- package/src/helper/stepFunctions/elementInteractions.js +38 -38
- package/src/helper/stepFunctions/exporter.js +19 -19
- package/src/helper/stepFunctions/frameActions.js +50 -50
- package/src/helper/stepFunctions/keyboardActions.js +41 -41
- package/src/helper/stepFunctions/mouseActions.js +145 -145
- package/src/helper/stepFunctions/pageActions.js +27 -27
- package/src/hooks/context.js +15 -15
- package/src/hooks/hooks.js +257 -257
- package/src/stepDefinitions/API.steps.js +299 -299
- package/src/stepDefinitions/assertions.steps.js +861 -861
- package/src/stepDefinitions/browser.steps.js +7 -7
- package/src/stepDefinitions/frameActions.steps.js +76 -76
- package/src/stepDefinitions/keyboardActions.steps.js +226 -226
- package/src/stepDefinitions/mouseActions.steps.js +275 -275
- package/src/stepDefinitions/page.steps.js +71 -71
- package/src/stepDefinitions/random.steps.js +158 -158
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
const { When } = require("../helper/imports/commons");
|
|
2
|
-
const { browser } = require("../helper/stepFunctions/exporter");
|
|
3
|
-
|
|
4
|
-
// User sets cookies in json format
|
|
5
|
-
When("User sets {string} cookies", async function (cookies) {
|
|
6
|
-
await browser.setCookies(cookies);
|
|
7
|
-
});
|
|
1
|
+
const { When } = require("../helper/imports/commons");
|
|
2
|
+
const { browser } = require("../helper/stepFunctions/exporter");
|
|
3
|
+
|
|
4
|
+
// User sets cookies in json format
|
|
5
|
+
When("User sets {string} cookies", async function (cookies) {
|
|
6
|
+
await browser.setCookies(cookies);
|
|
7
|
+
});
|
|
@@ -1,76 +1,76 @@
|
|
|
1
|
-
const { When } = require("../helper/imports/commons");
|
|
2
|
-
const { frame } = require("../helper/stepFunctions/exporter");
|
|
3
|
-
|
|
4
|
-
// User takes a screenshot of a specific selector
|
|
5
|
-
When("User takes a screenshot of {string}", async function (selector) {
|
|
6
|
-
await frame.screenshot(selector);
|
|
7
|
-
});
|
|
8
|
-
|
|
9
|
-
// User gets the content frame of a specific selector
|
|
10
|
-
When("User gets the content frame of {string}", async function (selector) {
|
|
11
|
-
await frame.contentFrame(selector);
|
|
12
|
-
});
|
|
13
|
-
|
|
14
|
-
// User gets the frame locator of a specific selector
|
|
15
|
-
When("User gets the frame locator of {string}", async function (selector) {
|
|
16
|
-
await frame.frameLocator(selector);
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
// User gets the nth element of a specific selector
|
|
20
|
-
When(
|
|
21
|
-
"User gets the {int} th element of {string}",
|
|
22
|
-
async function (index, selector) {
|
|
23
|
-
await frame.nth(selector, index);
|
|
24
|
-
},
|
|
25
|
-
);
|
|
26
|
-
|
|
27
|
-
// User gets the first element of a specific selector
|
|
28
|
-
When("User gets the first element of {string}", async function (selector) {
|
|
29
|
-
await frame.first(selector);
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
// User gets the last element of a specific selector
|
|
33
|
-
When("User gets the last element of {string}", async function (selector) {
|
|
34
|
-
await frame.last(selector);
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
// User filters elements of a specific selector
|
|
38
|
-
When(
|
|
39
|
-
"User filters elements of {string} with filter {string}",
|
|
40
|
-
async function (selector, filter) {
|
|
41
|
-
await frame.filter(selector, filter);
|
|
42
|
-
},
|
|
43
|
-
);
|
|
44
|
-
|
|
45
|
-
// User counts the number of elements of a specific selector
|
|
46
|
-
When("User counts the elements of {string}", async function (selector) {
|
|
47
|
-
await frame.count(selector);
|
|
48
|
-
});
|
|
49
|
-
|
|
50
|
-
// User gets an element by its alt text
|
|
51
|
-
When("User gets the element with alt text {string}", async function (text) {
|
|
52
|
-
await frame.getByAltText(text);
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
// User gets an element by its label
|
|
56
|
-
When("User gets the element with label {string}", async function (label) {
|
|
57
|
-
await frame.getByLabel(label);
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
// User gets an element by its placeholder
|
|
61
|
-
When(
|
|
62
|
-
"User gets the element with placeholder {string}",
|
|
63
|
-
async function (placeholder) {
|
|
64
|
-
await frame.getByPlaceholder(placeholder);
|
|
65
|
-
},
|
|
66
|
-
);
|
|
67
|
-
|
|
68
|
-
// User gets an element by its role
|
|
69
|
-
When("User gets the element with role {string}", async function (role) {
|
|
70
|
-
await frame.getByRole(role);
|
|
71
|
-
});
|
|
72
|
-
|
|
73
|
-
// User gets an element by its testId
|
|
74
|
-
When("User gets the element with testId {string}", async function (testId) {
|
|
75
|
-
await frame.getByTestId(testId);
|
|
76
|
-
});
|
|
1
|
+
const { When } = require("../helper/imports/commons");
|
|
2
|
+
const { frame } = require("../helper/stepFunctions/exporter");
|
|
3
|
+
|
|
4
|
+
// User takes a screenshot of a specific selector
|
|
5
|
+
When("User takes a screenshot of {string}", async function (selector) {
|
|
6
|
+
await frame.screenshot(selector);
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
// User gets the content frame of a specific selector
|
|
10
|
+
When("User gets the content frame of {string}", async function (selector) {
|
|
11
|
+
await frame.contentFrame(selector);
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
// User gets the frame locator of a specific selector
|
|
15
|
+
When("User gets the frame locator of {string}", async function (selector) {
|
|
16
|
+
await frame.frameLocator(selector);
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
// User gets the nth element of a specific selector
|
|
20
|
+
When(
|
|
21
|
+
"User gets the {int} th element of {string}",
|
|
22
|
+
async function (index, selector) {
|
|
23
|
+
await frame.nth(selector, index);
|
|
24
|
+
},
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
// User gets the first element of a specific selector
|
|
28
|
+
When("User gets the first element of {string}", async function (selector) {
|
|
29
|
+
await frame.first(selector);
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
// User gets the last element of a specific selector
|
|
33
|
+
When("User gets the last element of {string}", async function (selector) {
|
|
34
|
+
await frame.last(selector);
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
// User filters elements of a specific selector
|
|
38
|
+
When(
|
|
39
|
+
"User filters elements of {string} with filter {string}",
|
|
40
|
+
async function (selector, filter) {
|
|
41
|
+
await frame.filter(selector, filter);
|
|
42
|
+
},
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
// User counts the number of elements of a specific selector
|
|
46
|
+
When("User counts the elements of {string}", async function (selector) {
|
|
47
|
+
await frame.count(selector);
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
// User gets an element by its alt text
|
|
51
|
+
When("User gets the element with alt text {string}", async function (text) {
|
|
52
|
+
await frame.getByAltText(text);
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
// User gets an element by its label
|
|
56
|
+
When("User gets the element with label {string}", async function (label) {
|
|
57
|
+
await frame.getByLabel(label);
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
// User gets an element by its placeholder
|
|
61
|
+
When(
|
|
62
|
+
"User gets the element with placeholder {string}",
|
|
63
|
+
async function (placeholder) {
|
|
64
|
+
await frame.getByPlaceholder(placeholder);
|
|
65
|
+
},
|
|
66
|
+
);
|
|
67
|
+
|
|
68
|
+
// User gets an element by its role
|
|
69
|
+
When("User gets the element with role {string}", async function (role) {
|
|
70
|
+
await frame.getByRole(role);
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
// User gets an element by its testId
|
|
74
|
+
When("User gets the element with testId {string}", async function (testId) {
|
|
75
|
+
await frame.getByTestId(testId);
|
|
76
|
+
});
|
|
@@ -1,227 +1,227 @@
|
|
|
1
|
-
const { When, random, element, selector, time } = require("../helper/imports/commons");
|
|
2
|
-
const { keyboard, frame } = require("../helper/stepFunctions/exporter");
|
|
3
|
-
|
|
4
|
-
// User presses a key on a specific selector
|
|
5
|
-
When("User presses {string} on {string}", async function (key, selector) {
|
|
6
|
-
await keyboard.press(selector, key);
|
|
7
|
-
});
|
|
8
|
-
|
|
9
|
-
// User presses keys sequentially on a specific selector
|
|
10
|
-
When(
|
|
11
|
-
"User types {string} by hand in {string}",
|
|
12
|
-
async function (keys, selector) {
|
|
13
|
-
await keyboard.pressSequentially(selector, keys);
|
|
14
|
-
},
|
|
15
|
-
);
|
|
16
|
-
|
|
17
|
-
When(
|
|
18
|
-
"User types {string} by hand in {int} th of {string}",
|
|
19
|
-
async (text, order, elements) => {
|
|
20
|
-
const nthElement = await frame.nth(elements, order);
|
|
21
|
-
await nthElement.pressSequentially(text);
|
|
22
|
-
},
|
|
23
|
-
);
|
|
24
|
-
|
|
25
|
-
// User presses keys sequentially with a delay on a specific selector
|
|
26
|
-
When(
|
|
27
|
-
"User types {string} by hand with delay {int} in {string}",
|
|
28
|
-
async function (keys, delay, selector) {
|
|
29
|
-
await keyboard.pressSequentiallyDelay(selector, keys, delay);
|
|
30
|
-
},
|
|
31
|
-
);
|
|
32
|
-
|
|
33
|
-
// User fills a value into a specific selector
|
|
34
|
-
When("User types {string} in {string}", async function (value, selector) {
|
|
35
|
-
await keyboard.fill(selector, value);
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
When(
|
|
39
|
-
"User types {string} in {int} th of {string}",
|
|
40
|
-
async (text, order, elements) => {
|
|
41
|
-
const nthElement = await frame.nth(elements, order);
|
|
42
|
-
await nthElement.fill(text);
|
|
43
|
-
},
|
|
44
|
-
);
|
|
45
|
-
|
|
46
|
-
When(
|
|
47
|
-
"User types {string} in multiple {string}",
|
|
48
|
-
async function (value, selectors) {
|
|
49
|
-
await keyboard.multipleElementFill(selectors, value);
|
|
50
|
-
},
|
|
51
|
-
);
|
|
52
|
-
|
|
53
|
-
// User clears the input of a specific selector
|
|
54
|
-
When("User clears {string}", async function (selector) {
|
|
55
|
-
await keyboard.clear(selector);
|
|
56
|
-
});
|
|
57
|
-
|
|
58
|
-
// User selects text in a specific selector
|
|
59
|
-
When("User selects {string} text", async function (text) {
|
|
60
|
-
await keyboard.selectText(text);
|
|
61
|
-
});
|
|
62
|
-
|
|
63
|
-
// User sets input files for a specific selector
|
|
64
|
-
When(
|
|
65
|
-
"User sets input files {string} for {string}",
|
|
66
|
-
async function (files, selector) {
|
|
67
|
-
const fileArray = files.split(","); // Assuming files are comma-separated
|
|
68
|
-
await keyboard.setInputFiles(selector, fileArray);
|
|
69
|
-
},
|
|
70
|
-
);
|
|
71
|
-
|
|
72
|
-
// User presses a key down
|
|
73
|
-
When("User holds down {string}", async function (key) {
|
|
74
|
-
await keyboard.keyDown(key);
|
|
75
|
-
});
|
|
76
|
-
|
|
77
|
-
// User releases a key
|
|
78
|
-
When("User releases {string}", async function (key) {
|
|
79
|
-
await keyboard.keyUp(key);
|
|
80
|
-
});
|
|
81
|
-
|
|
82
|
-
// User inserts text
|
|
83
|
-
When("User inserts text {string}", async function (text) {
|
|
84
|
-
await keyboard.insertText(text);
|
|
85
|
-
});
|
|
86
|
-
|
|
87
|
-
// User presses a key
|
|
88
|
-
When("User presses {string}", async function (key) {
|
|
89
|
-
await keyboard.keyboardPress(key);
|
|
90
|
-
});
|
|
91
|
-
|
|
92
|
-
// User types a key with a delay
|
|
93
|
-
When("User types {string} with delay {int}", async function (key, delay) {
|
|
94
|
-
await keyboard.keyboardType(key, delay);
|
|
95
|
-
});
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
When('User types random word in {string}', async (input) => {
|
|
100
|
-
const randomWord = random.lorem.word();
|
|
101
|
-
await keyboard.fill(input, randomWord);
|
|
102
|
-
});
|
|
103
|
-
|
|
104
|
-
When('User types random word that has character between {int} and {int} in {string}', async (from,to, input) => {
|
|
105
|
-
const randomWord = random.lorem.word({min:from, max:to});
|
|
106
|
-
await keyboard.fill(input, randomWord);
|
|
107
|
-
});
|
|
108
|
-
|
|
109
|
-
When('User types random words in {string}', async (input) => {
|
|
110
|
-
const randomWord = random.lorem.words();
|
|
111
|
-
await keyboard.fill(input, randomWord);
|
|
112
|
-
});
|
|
113
|
-
|
|
114
|
-
When(
|
|
115
|
-
"User types random words that range between {int} and {int} in {string}",
|
|
116
|
-
async (from, to, input) => {
|
|
117
|
-
const words = random.lorem.words({ min: from, max: to });
|
|
118
|
-
await keyboard.fill(input, words);
|
|
119
|
-
},
|
|
120
|
-
);
|
|
121
|
-
|
|
122
|
-
When('User types random paragraph in {string}', async (input) => {
|
|
123
|
-
const randomParagraph = random.lorem.paragraph();
|
|
124
|
-
await keyboard.fill(input, randomParagraph);
|
|
125
|
-
});
|
|
126
|
-
|
|
127
|
-
When(
|
|
128
|
-
"User types random paragraph that range between {int} and {int} in {string}",
|
|
129
|
-
async (from, to, input) => {
|
|
130
|
-
const words = random.lorem.paragraph({ min: from, max: to });
|
|
131
|
-
await keyboard.fill(input, words);
|
|
132
|
-
},
|
|
133
|
-
);
|
|
134
|
-
|
|
135
|
-
When('User types random url in {string}', async (input) => {
|
|
136
|
-
const randomURL = random.internet.url();
|
|
137
|
-
await keyboard.fill(input, randomURL);
|
|
138
|
-
});
|
|
139
|
-
|
|
140
|
-
When('User types random number in {string}', async (input) => {
|
|
141
|
-
const randomNumber = random.number.int();
|
|
142
|
-
await keyboard.fill(input, randomNumber.toString());
|
|
143
|
-
});
|
|
144
|
-
|
|
145
|
-
When('User types random number that range between {int} and {int} in {string}', async (from, to, input) => {
|
|
146
|
-
const randomNumber = random.number.int({ min: from, max: to });
|
|
147
|
-
await keyboard.fill(input, randomNumber.toString());
|
|
148
|
-
});
|
|
149
|
-
|
|
150
|
-
When('User types random email in {string}', async (key) => {
|
|
151
|
-
const email = random.internet.email()
|
|
152
|
-
await keyboard.fill(key, email);
|
|
153
|
-
});
|
|
154
|
-
|
|
155
|
-
When(
|
|
156
|
-
"User types random word in {int} th of {string}",
|
|
157
|
-
async (th, inputs) => {
|
|
158
|
-
const nthElement = await frame.nth(th, inputs);
|
|
159
|
-
const randomWord = random.lorem.word();
|
|
160
|
-
await nthElement.fill(randomWord);
|
|
161
|
-
},
|
|
162
|
-
);
|
|
163
|
-
|
|
164
|
-
When('User types random word that has character between {int} and {int} in {int} th of {string}', async (from,to,th, inputs) => {
|
|
165
|
-
const nthElement = await frame.nth(th, inputs);
|
|
166
|
-
const randomWord = random.lorem.word({min:from, max:to});
|
|
167
|
-
await nthElement.fill(randomWord);
|
|
168
|
-
});
|
|
169
|
-
|
|
170
|
-
When('User types random characters from {string} in {string}', async (chars, input) => {
|
|
171
|
-
const randomCharacters = random.string.fromCharacters(chars,10);
|
|
172
|
-
input = await element(selector(input))
|
|
173
|
-
await input.fill(randomCharacters)
|
|
174
|
-
})
|
|
175
|
-
|
|
176
|
-
When('User types random number by hand in range from {int} to {int} in {string} with {int} ms delay', async (from,to, input, delay) => {
|
|
177
|
-
const randomNumber = Math.floor(Math.random() * (to - from + 1)) + from;
|
|
178
|
-
await keyboard.pressSequentiallyDelay(input, randomNumber.toString(), delay);
|
|
179
|
-
})
|
|
180
|
-
|
|
181
|
-
When('User types random alphanumeric in range from {int} to {int} in {string}', async (from,to, input) => {
|
|
182
|
-
const randomWords = await random.string.alphanumeric({length: { min: from, max: to }})
|
|
183
|
-
await element(input).fill(randomWords)
|
|
184
|
-
})
|
|
185
|
-
|
|
186
|
-
When('User types random fullname in {string}', async (input) => {
|
|
187
|
-
const randomFirstName = await random.person.firstName()
|
|
188
|
-
const randomLastName = await random.person.lastName()
|
|
189
|
-
|
|
190
|
-
await element(input).fill(`${randomFirstName} ${randomLastName}`)
|
|
191
|
-
})
|
|
192
|
-
|
|
193
|
-
When('User types random first name in {string}', async (input) => {
|
|
194
|
-
const randomFirstName = await random.person.firstName()
|
|
195
|
-
await element(input).fill(randomFirstName)
|
|
196
|
-
})
|
|
197
|
-
|
|
198
|
-
When('User types random last name in {string}', async (input) => {
|
|
199
|
-
const randomLastName = await random.person.lastName()
|
|
200
|
-
await element(input).fill(randomLastName)
|
|
201
|
-
})
|
|
202
|
-
|
|
203
|
-
When('User types random middle name in {string}', async (input) => {
|
|
204
|
-
const randomMiddleName = await random.person.middleName()
|
|
205
|
-
await element(input).fill(randomMiddleName)
|
|
206
|
-
})
|
|
207
|
-
|
|
208
|
-
When('User types random date between {int} and {int} in {string}', async (fromYear, toYear, input) => {
|
|
209
|
-
const year = Math.floor(Math.random() * (toYear - fromYear + 1)) + fromYear
|
|
210
|
-
const month = Math.floor(Math.random() * 12) + 1
|
|
211
|
-
const day = Math.floor(Math.random() * 28) + 1
|
|
212
|
-
const pad = (num) => num.toString().padStart(2, '0')
|
|
213
|
-
const dateStr = `${pad(day)}.${pad(month)}.${year}`
|
|
214
|
-
await element(input).fill(dateStr)
|
|
215
|
-
})
|
|
216
|
-
|
|
217
|
-
When('User types date {int} days after today in {string}', async (day, input) => {
|
|
218
|
-
const now = new time();
|
|
219
|
-
const afterDate = now.add(day, 'day').format("DD-MM-YYYY");
|
|
220
|
-
await element(input).fill(afterDate)
|
|
221
|
-
})
|
|
222
|
-
|
|
223
|
-
When('User types date {int} days before today in {string}', async (day, input) => {
|
|
224
|
-
const now = new time();
|
|
225
|
-
const beforeDate = now.subtract(day, 'day').format("DD-MM-YYYY");
|
|
226
|
-
await element(input).fill(beforeDate)
|
|
1
|
+
const { When, random, element, selector, time } = require("../helper/imports/commons");
|
|
2
|
+
const { keyboard, frame } = require("../helper/stepFunctions/exporter");
|
|
3
|
+
|
|
4
|
+
// User presses a key on a specific selector
|
|
5
|
+
When("User presses {string} on {string}", async function (key, selector) {
|
|
6
|
+
await keyboard.press(selector, key);
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
// User presses keys sequentially on a specific selector
|
|
10
|
+
When(
|
|
11
|
+
"User types {string} by hand in {string}",
|
|
12
|
+
async function (keys, selector) {
|
|
13
|
+
await keyboard.pressSequentially(selector, keys);
|
|
14
|
+
},
|
|
15
|
+
);
|
|
16
|
+
|
|
17
|
+
When(
|
|
18
|
+
"User types {string} by hand in {int} th of {string}",
|
|
19
|
+
async (text, order, elements) => {
|
|
20
|
+
const nthElement = await frame.nth(elements, order);
|
|
21
|
+
await nthElement.pressSequentially(text);
|
|
22
|
+
},
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
// User presses keys sequentially with a delay on a specific selector
|
|
26
|
+
When(
|
|
27
|
+
"User types {string} by hand with delay {int} in {string}",
|
|
28
|
+
async function (keys, delay, selector) {
|
|
29
|
+
await keyboard.pressSequentiallyDelay(selector, keys, delay);
|
|
30
|
+
},
|
|
31
|
+
);
|
|
32
|
+
|
|
33
|
+
// User fills a value into a specific selector
|
|
34
|
+
When("User types {string} in {string}", async function (value, selector) {
|
|
35
|
+
await keyboard.fill(selector, value);
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
When(
|
|
39
|
+
"User types {string} in {int} th of {string}",
|
|
40
|
+
async (text, order, elements) => {
|
|
41
|
+
const nthElement = await frame.nth(elements, order);
|
|
42
|
+
await nthElement.fill(text);
|
|
43
|
+
},
|
|
44
|
+
);
|
|
45
|
+
|
|
46
|
+
When(
|
|
47
|
+
"User types {string} in multiple {string}",
|
|
48
|
+
async function (value, selectors) {
|
|
49
|
+
await keyboard.multipleElementFill(selectors, value);
|
|
50
|
+
},
|
|
51
|
+
);
|
|
52
|
+
|
|
53
|
+
// User clears the input of a specific selector
|
|
54
|
+
When("User clears {string}", async function (selector) {
|
|
55
|
+
await keyboard.clear(selector);
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
// User selects text in a specific selector
|
|
59
|
+
When("User selects {string} text", async function (text) {
|
|
60
|
+
await keyboard.selectText(text);
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
// User sets input files for a specific selector
|
|
64
|
+
When(
|
|
65
|
+
"User sets input files {string} for {string}",
|
|
66
|
+
async function (files, selector) {
|
|
67
|
+
const fileArray = files.split(","); // Assuming files are comma-separated
|
|
68
|
+
await keyboard.setInputFiles(selector, fileArray);
|
|
69
|
+
},
|
|
70
|
+
);
|
|
71
|
+
|
|
72
|
+
// User presses a key down
|
|
73
|
+
When("User holds down {string}", async function (key) {
|
|
74
|
+
await keyboard.keyDown(key);
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
// User releases a key
|
|
78
|
+
When("User releases {string}", async function (key) {
|
|
79
|
+
await keyboard.keyUp(key);
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
// User inserts text
|
|
83
|
+
When("User inserts text {string}", async function (text) {
|
|
84
|
+
await keyboard.insertText(text);
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
// User presses a key
|
|
88
|
+
When("User presses {string}", async function (key) {
|
|
89
|
+
await keyboard.keyboardPress(key);
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
// User types a key with a delay
|
|
93
|
+
When("User types {string} with delay {int}", async function (key, delay) {
|
|
94
|
+
await keyboard.keyboardType(key, delay);
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
When('User types random word in {string}', async (input) => {
|
|
100
|
+
const randomWord = random.lorem.word();
|
|
101
|
+
await keyboard.fill(input, randomWord);
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
When('User types random word that has character between {int} and {int} in {string}', async (from,to, input) => {
|
|
105
|
+
const randomWord = random.lorem.word({min:from, max:to});
|
|
106
|
+
await keyboard.fill(input, randomWord);
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
When('User types random words in {string}', async (input) => {
|
|
110
|
+
const randomWord = random.lorem.words();
|
|
111
|
+
await keyboard.fill(input, randomWord);
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
When(
|
|
115
|
+
"User types random words that range between {int} and {int} in {string}",
|
|
116
|
+
async (from, to, input) => {
|
|
117
|
+
const words = random.lorem.words({ min: from, max: to });
|
|
118
|
+
await keyboard.fill(input, words);
|
|
119
|
+
},
|
|
120
|
+
);
|
|
121
|
+
|
|
122
|
+
When('User types random paragraph in {string}', async (input) => {
|
|
123
|
+
const randomParagraph = random.lorem.paragraph();
|
|
124
|
+
await keyboard.fill(input, randomParagraph);
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
When(
|
|
128
|
+
"User types random paragraph that range between {int} and {int} in {string}",
|
|
129
|
+
async (from, to, input) => {
|
|
130
|
+
const words = random.lorem.paragraph({ min: from, max: to });
|
|
131
|
+
await keyboard.fill(input, words);
|
|
132
|
+
},
|
|
133
|
+
);
|
|
134
|
+
|
|
135
|
+
When('User types random url in {string}', async (input) => {
|
|
136
|
+
const randomURL = random.internet.url();
|
|
137
|
+
await keyboard.fill(input, randomURL);
|
|
138
|
+
});
|
|
139
|
+
|
|
140
|
+
When('User types random number in {string}', async (input) => {
|
|
141
|
+
const randomNumber = random.number.int();
|
|
142
|
+
await keyboard.fill(input, randomNumber.toString());
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
When('User types random number that range between {int} and {int} in {string}', async (from, to, input) => {
|
|
146
|
+
const randomNumber = random.number.int({ min: from, max: to });
|
|
147
|
+
await keyboard.fill(input, randomNumber.toString());
|
|
148
|
+
});
|
|
149
|
+
|
|
150
|
+
When('User types random email in {string}', async (key) => {
|
|
151
|
+
const email = random.internet.email()
|
|
152
|
+
await keyboard.fill(key, email);
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
When(
|
|
156
|
+
"User types random word in {int} th of {string}",
|
|
157
|
+
async (th, inputs) => {
|
|
158
|
+
const nthElement = await frame.nth(th, inputs);
|
|
159
|
+
const randomWord = random.lorem.word();
|
|
160
|
+
await nthElement.fill(randomWord);
|
|
161
|
+
},
|
|
162
|
+
);
|
|
163
|
+
|
|
164
|
+
When('User types random word that has character between {int} and {int} in {int} th of {string}', async (from,to,th, inputs) => {
|
|
165
|
+
const nthElement = await frame.nth(th, inputs);
|
|
166
|
+
const randomWord = random.lorem.word({min:from, max:to});
|
|
167
|
+
await nthElement.fill(randomWord);
|
|
168
|
+
});
|
|
169
|
+
|
|
170
|
+
When('User types random characters from {string} in {string}', async (chars, input) => {
|
|
171
|
+
const randomCharacters = random.string.fromCharacters(chars,10);
|
|
172
|
+
input = await element(selector(input))
|
|
173
|
+
await input.fill(randomCharacters)
|
|
174
|
+
})
|
|
175
|
+
|
|
176
|
+
When('User types random number by hand in range from {int} to {int} in {string} with {int} ms delay', async (from,to, input, delay) => {
|
|
177
|
+
const randomNumber = Math.floor(Math.random() * (to - from + 1)) + from;
|
|
178
|
+
await keyboard.pressSequentiallyDelay(input, randomNumber.toString(), delay);
|
|
179
|
+
})
|
|
180
|
+
|
|
181
|
+
When('User types random alphanumeric in range from {int} to {int} in {string}', async (from,to, input) => {
|
|
182
|
+
const randomWords = await random.string.alphanumeric({length: { min: from, max: to }})
|
|
183
|
+
await element(input).fill(randomWords)
|
|
184
|
+
})
|
|
185
|
+
|
|
186
|
+
When('User types random fullname in {string}', async (input) => {
|
|
187
|
+
const randomFirstName = await random.person.firstName()
|
|
188
|
+
const randomLastName = await random.person.lastName()
|
|
189
|
+
|
|
190
|
+
await element(input).fill(`${randomFirstName} ${randomLastName}`)
|
|
191
|
+
})
|
|
192
|
+
|
|
193
|
+
When('User types random first name in {string}', async (input) => {
|
|
194
|
+
const randomFirstName = await random.person.firstName()
|
|
195
|
+
await element(input).fill(randomFirstName)
|
|
196
|
+
})
|
|
197
|
+
|
|
198
|
+
When('User types random last name in {string}', async (input) => {
|
|
199
|
+
const randomLastName = await random.person.lastName()
|
|
200
|
+
await element(input).fill(randomLastName)
|
|
201
|
+
})
|
|
202
|
+
|
|
203
|
+
When('User types random middle name in {string}', async (input) => {
|
|
204
|
+
const randomMiddleName = await random.person.middleName()
|
|
205
|
+
await element(input).fill(randomMiddleName)
|
|
206
|
+
})
|
|
207
|
+
|
|
208
|
+
When('User types random date between {int} and {int} in {string}', async (fromYear, toYear, input) => {
|
|
209
|
+
const year = Math.floor(Math.random() * (toYear - fromYear + 1)) + fromYear
|
|
210
|
+
const month = Math.floor(Math.random() * 12) + 1
|
|
211
|
+
const day = Math.floor(Math.random() * 28) + 1
|
|
212
|
+
const pad = (num) => num.toString().padStart(2, '0')
|
|
213
|
+
const dateStr = `${pad(day)}.${pad(month)}.${year}`
|
|
214
|
+
await element(input).fill(dateStr)
|
|
215
|
+
})
|
|
216
|
+
|
|
217
|
+
When('User types date {int} days after today in {string}', async (day, input) => {
|
|
218
|
+
const now = new time();
|
|
219
|
+
const afterDate = now.add(day, 'day').format("DD-MM-YYYY");
|
|
220
|
+
await element(input).fill(afterDate)
|
|
221
|
+
})
|
|
222
|
+
|
|
223
|
+
When('User types date {int} days before today in {string}', async (day, input) => {
|
|
224
|
+
const now = new time();
|
|
225
|
+
const beforeDate = now.subtract(day, 'day').format("DD-MM-YYYY");
|
|
226
|
+
await element(input).fill(beforeDate)
|
|
227
227
|
})
|