@vardot/varbase-e2e 2.0.0
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/AGENTS.md +148 -0
- package/CLAUDE.md +544 -0
- package/README.md +22 -0
- package/bin/generate-reports.js +363 -0
- package/bin/init-varbase-e2e.js +330 -0
- package/bin/postinstall.js +26 -0
- package/cucumber.js +125 -0
- package/docs/00-quick-start.md +102 -0
- package/docs/01-getting-started.md +102 -0
- package/docs/02-bbr-smart-waits.md +77 -0
- package/docs/03-selector-registry.md +95 -0
- package/docs/04-step-reference.md +801 -0
- package/docs/05-web-first-assertions.md +91 -0
- package/docs/06-network-and-dialogs.md +83 -0
- package/docs/07-auth-state.md +75 -0
- package/docs/08-clock-mocking.md +59 -0
- package/docs/09-api-testing.md +114 -0
- package/docs/10-accessibility.md +167 -0
- package/docs/11-debugging.md +129 -0
- package/docs/12-ai-agent-guide.md +338 -0
- package/docs/13-faq.md +236 -0
- package/docs/14-recipes-cookbook.md +255 -0
- package/docs/15-tag-conventions.md +76 -0
- package/docs/16-ci-cd.md +90 -0
- package/docs/README.md +125 -0
- package/docs/advanced-screenshots/then-i-save-fullscreen-screenshot.md +36 -0
- package/docs/advanced-screenshots/then-i-save-width-x-height-screenshot.md +34 -0
- package/docs/advanced-screenshots/when-i-save-screenshot-name-filename.md +45 -0
- package/docs/advanced-screenshots.md +52 -0
- package/docs/advanced-selectors.md +18 -0
- package/docs/api-step-definitions.md +45 -0
- package/docs/global-settings.md +267 -0
- package/docs/install-varbase-e2e/ddev-varbase-e2e.md +52 -0
- package/docs/install-varbase-e2e.md +34 -0
- package/docs/overview.md +40 -0
- package/docs/step-definitions/given-i-am-anonymous-user.md +67 -0
- package/docs/step-definitions/given-i-am-homepage.md +68 -0
- package/docs/step-definitions/given-i-am-specific-page.md +72 -0
- package/docs/step-definitions/then-i-should-be.md +56 -0
- package/docs/step-definitions/then-i-should-see.md +62 -0
- package/docs/step-definitions/then-item-checkbox.md +54 -0
- package/docs/step-definitions/then-item-link-should-contain-url.md +84 -0
- package/docs/step-definitions/then-item-should-contain.md +67 -0
- package/docs/step-definitions/then-radio-button-value-should-be-selected.md +68 -0
- package/docs/step-definitions/then-response-status-code-should-be-number.md +69 -0
- package/docs/step-definitions/then-value-radio-button-selected.md +62 -0
- package/docs/step-definitions/when-i-attach-file-file-name-element.md +71 -0
- package/docs/step-definitions/when-i-check-checkbox.md +60 -0
- package/docs/step-definitions/when-i-click-link.md +51 -0
- package/docs/step-definitions/when-i-click-operation-text-row.md +71 -0
- package/docs/step-definitions/when-i-fill.md +59 -0
- package/docs/step-definitions/when-i-go-homepage.md +60 -0
- package/docs/step-definitions/when-i-go-specific-page.md +67 -0
- package/docs/step-definitions/when-i-move-backward-one-page.md +49 -0
- package/docs/step-definitions/when-i-move-forward-one-page.md +58 -0
- package/docs/step-definitions/when-i-press-button.md +58 -0
- package/docs/step-definitions/when-i-reload-page.md +51 -0
- package/docs/step-definitions/when-i-scroll.md +73 -0
- package/docs/step-definitions/when-i-select-option-select-list.md +53 -0
- package/docs/step-definitions/when-i-select-radio-button-value.md +62 -0
- package/docs/step-definitions/when-i-uncheck-checkbox.md +57 -0
- package/docs/step-definitions/when-i-wait-ajax-finish.md +64 -0
- package/docs/step-definitions/when-i-wait.md +62 -0
- package/docs/step-definitions.md +82 -0
- package/docs/steps/README.md +137 -0
- package/docs/steps/a11y.md +731 -0
- package/docs/steps/action.md +181 -0
- package/docs/steps/api.md +679 -0
- package/docs/steps/assertion.md +328 -0
- package/docs/steps/auth.md +108 -0
- package/docs/steps/clock.md +171 -0
- package/docs/steps/cookie.md +293 -0
- package/docs/steps/debug.md +52 -0
- package/docs/steps/dialog.md +226 -0
- package/docs/steps/drupal-canvas.md +414 -0
- package/docs/steps/drupal-ckeditor.md +118 -0
- package/docs/steps/drupal-core.md +688 -0
- package/docs/steps/drupal-layout-builder.md +437 -0
- package/docs/steps/drupal-media.md +107 -0
- package/docs/steps/drupal-moderation.md +81 -0
- package/docs/steps/drupal-paragraphs.md +36 -0
- package/docs/steps/element.md +455 -0
- package/docs/steps/field.md +648 -0
- package/docs/steps/file-download.md +235 -0
- package/docs/steps/form.md +344 -0
- package/docs/steps/iframe.md +248 -0
- package/docs/steps/input.md +220 -0
- package/docs/steps/javascript.md +111 -0
- package/docs/steps/keyboard.md +107 -0
- package/docs/steps/link.md +217 -0
- package/docs/steps/metatag.md +99 -0
- package/docs/steps/modal.md +232 -0
- package/docs/steps/navigation.md +275 -0
- package/docs/steps/network.md +284 -0
- package/docs/steps/path.md +203 -0
- package/docs/steps/response.md +102 -0
- package/docs/steps/responsive.md +139 -0
- package/docs/steps/rest.md +140 -0
- package/docs/steps/screenshot.md +211 -0
- package/docs/steps/scroll.md +266 -0
- package/docs/steps/selectors.md +848 -0
- package/docs/steps/storage.md +254 -0
- package/docs/steps/table.md +216 -0
- package/docs/steps/varbase.md +391 -0
- package/docs/steps/video.md +111 -0
- package/docs/steps/wait.md +553 -0
- package/docs/steps/web-first.md +289 -0
- package/docs/steps/xml.md +505 -0
- package/docs/steps/yaml.md +951 -0
- package/examples/a11y.html +31 -0
- package/examples/about-us.html +11 -0
- package/examples/account.html +32 -0
- package/examples/ajax-wait-examples.html +147 -0
- package/examples/contact-us.html +10 -0
- package/examples/cookies.html +10 -0
- package/examples/date.html +12 -0
- package/examples/dynamic-examples.html +498 -0
- package/examples/element.html +11 -0
- package/examples/example-api.json +28 -0
- package/examples/existing-page.html +11 -0
- package/examples/field.html +24 -0
- package/examples/index.html +37 -0
- package/examples/keyboard.html +11 -0
- package/examples/links.html +9 -0
- package/examples/modal.html +14 -0
- package/examples/path.html +3 -0
- package/examples/table.html +13 -0
- package/examples/test--modal-dialogs.html +252 -0
- package/examples/test--then--i-should--not--see-text-in-element.html +48 -0
- package/examples/test--then--i-should--see-text-in-element.html +48 -0
- package/examples/test--then--i-should--see-text-matching-pattern.html +31 -0
- package/examples/test--then--i-should-see-text-in-table-row.html +232 -0
- package/examples/test--then--the-checkbox-checked.html +68 -0
- package/examples/test--then--the-element-should_not-contain-cssproperty.html +47 -0
- package/examples/test--then--the-link-should-contain.html +21 -0
- package/examples/test--when--i-additionally-select.html +27 -0
- package/examples/test--when--i-attach-file-to-feild.html +50 -0
- package/examples/test--when--i-check-uncheck-checkbox.html +47 -0
- package/examples/test--when--i-click-link.html +18 -0
- package/examples/test--when--i-click-text-in-table-row.html +178 -0
- package/examples/test--when--i-fill-in.html +48 -0
- package/examples/test--when--i-press-button.html +31 -0
- package/examples/test--when--i-reload-page.html +27 -0
- package/examples/test--when--i-scroll-functionality.html +177 -0
- package/examples/test--when--i-scroll-left-right-functionality.html +149 -0
- package/examples/test--when--i-select-option-from-dropdownlist.html +35 -0
- package/examples/test--when--i-select-radio-button.html +95 -0
- package/examples/test--when-i-wait-max-of-time.html +39 -0
- package/examples/test--when-i-wait-page-until-is-loaded.html +47 -0
- package/examples/test--when-i-wait-specific-time.html +39 -0
- package/examples/test-acceptable-url-path.html +11 -0
- package/examples/video-demo.html +43 -0
- package/package.json +56 -0
- package/playwright.config.ts +39 -0
- package/tests/assets/test-document.pdf +14 -0
- package/tests/assets/vardot.png +0 -0
- package/tests/features/a11y.feature +39 -0
- package/tests/features/ajax-wait-examples.feature +24 -0
- package/tests/features/api-step-definitions-individual.feature +185 -0
- package/tests/features/complete-api-testing-examples.feature +205 -0
- package/tests/features/cookie.feature +13 -0
- package/tests/features/date.feature +11 -0
- package/tests/features/dynamic-content-examples.feature +156 -0
- package/tests/features/element.feature +16 -0
- package/tests/features/field.feature +25 -0
- package/tests/features/keyboard.feature +10 -0
- package/tests/features/link.feature +11 -0
- package/tests/features/modal-advanced-example.feature +54 -0
- package/tests/features/modal-basic-example.feature +42 -0
- package/tests/features/modal-error-handling-example.feature +37 -0
- package/tests/features/modal.feature +11 -0
- package/tests/features/path.feature +16 -0
- package/tests/features/response.feature +8 -0
- package/tests/features/responsive.feature +10 -0
- package/tests/features/table.feature +18 -0
- package/tests/features/test--given--i-am-an-anonymous-user.feature +10 -0
- package/tests/features/test--given--i-am-on-homepage.feature +16 -0
- package/tests/features/test--then--i-save-screenshot.feature +33 -0
- package/tests/features/test--then--i-see-locator.feature +320 -0
- package/tests/features/test--then--i-should--not--see-text-in-element.feature +13 -0
- package/tests/features/test--then--i-should--see-text-in-element-by-attr.feature +10 -0
- package/tests/features/test--then--i-should--see-text-in-element.feature +10 -0
- package/tests/features/test--then--i-should--see-text-matching-pattern-in-element.feature +13 -0
- package/tests/features/test--then--i-should--see-text-matching-pattern.feature +18 -0
- package/tests/features/test--then--i-should-be-on-page.feature +10 -0
- package/tests/features/test--then--i-should-be-on-the-homepage.feature +10 -0
- package/tests/features/test--then--i-should-not-see-an-element-by-attr.feature +8 -0
- package/tests/features/test--then--i-should-not-see-an-element.feature +8 -0
- package/tests/features/test--then--i-should-see-an-element-by-attr.feature +8 -0
- package/tests/features/test--then--i-should-see-an-element.feature +8 -0
- package/tests/features/test--then--i-should-see-n-elements.feature +24 -0
- package/tests/features/test--then--i-should-see-text-in-table-row.feature +96 -0
- package/tests/features/test--then--print-current-url-and-response.feature +21 -0
- package/tests/features/test--then--the-checkbox-is-checked.feature +18 -0
- package/tests/features/test--then--the-checkbox-should-be-checked.feature +16 -0
- package/tests/features/test--then--the-element-should-contain-cssproperty.feature +9 -0
- package/tests/features/test--then--the-element-should-not-contain-cssproperty.feature +10 -0
- package/tests/features/test--then--the-field-should-contain-value.feature +11 -0
- package/tests/features/test--then--the-response-should-contain.feature +11 -0
- package/tests/features/test--then--the-response-status-code-should-be.feature +31 -0
- package/tests/features/test--then--the-url-should-match.feature +7 -0
- package/tests/features/test--then-the-link-should-contain-by-attribute.feature +18 -0
- package/tests/features/test--then-the-link-should-contain.feature +7 -0
- package/tests/features/test--when--i-additionally-select.feature +30 -0
- package/tests/features/test--when--i-attach-file-to-feild.feature +9 -0
- package/tests/features/test--when--i-check-checkbox.feature +21 -0
- package/tests/features/test--when--i-click-link-by-attribute.feature +21 -0
- package/tests/features/test--when--i-click-link.feature +9 -0
- package/tests/features/test--when--i-click-text-in-table-row.feature +37 -0
- package/tests/features/test--when--i-fill-in-by-attr.feature +31 -0
- package/tests/features/test--when--i-fill-in-table-by-attr.feature +19 -0
- package/tests/features/test--when--i-fill-in.feature +32 -0
- package/tests/features/test--when--i-follow.feature +22 -0
- package/tests/features/test--when--i-go-to-homepage.feature +9 -0
- package/tests/features/test--when--i-move-forward-backward-one-page.feature +14 -0
- package/tests/features/test--when--i-press-button-by-attribute.feature +18 -0
- package/tests/features/test--when--i-press-button.feature +13 -0
- package/tests/features/test--when--i-reload-page.feature +11 -0
- package/tests/features/test--when--i-scroll-left-right.feature +48 -0
- package/tests/features/test--when--i-scroll.feature +48 -0
- package/tests/features/test--when--i-select-option-from-dropdownlist.feature +21 -0
- package/tests/features/test--when--i-select-radio-button.feature +37 -0
- package/tests/features/test--when--i-wait-page-is-loaded.feature +8 -0
- package/tests/features/test--when--i-wait-time.feature +21 -0
- package/tests/features/video.feature +18 -0
- package/tests/features/wait.feature +7 -0
- package/tests/features/yaml.feature +102 -0
- package/tests/selectors/_canonical-keys.json +113 -0
- package/tests/selectors/back-end-selectors.json +19 -0
- package/tests/selectors/cms-contentful-admin.json +35 -0
- package/tests/selectors/cms-craft-admin.json +39 -0
- package/tests/selectors/cms-drupal-cms-gin.json +56 -0
- package/tests/selectors/cms-drupal-core-claro.json +50 -0
- package/tests/selectors/cms-generic-admin.json +34 -0
- package/tests/selectors/cms-ghost-admin.json +34 -0
- package/tests/selectors/cms-joomla-admin.json +41 -0
- package/tests/selectors/cms-magento2-admin.json +32 -0
- package/tests/selectors/cms-prestashop-admin.json +38 -0
- package/tests/selectors/cms-shopify-admin.json +25 -0
- package/tests/selectors/cms-strapi-admin.json +42 -0
- package/tests/selectors/cms-typo3-admin.json +41 -0
- package/tests/selectors/cms-woocommerce-front.json +50 -0
- package/tests/selectors/cms-wordpress-admin.json +31 -0
- package/tests/selectors/framework-ant-design.json +80 -0
- package/tests/selectors/framework-bootstrap.json +86 -0
- package/tests/selectors/framework-bulma.json +74 -0
- package/tests/selectors/framework-chakra.json +58 -0
- package/tests/selectors/framework-foundation.json +51 -0
- package/tests/selectors/framework-material-ui.json +72 -0
- package/tests/selectors/framework-shadcn.json +51 -0
- package/tests/selectors/framework-tailwind.json +40 -0
- package/tests/selectors/framework-vuetify.json +61 -0
- package/tests/selectors/front-end-selectors.json +16 -0
- package/tests/selectors/homepage-selectors.json +13 -0
- package/tests/step-definitions/a11y.steps.js +800 -0
- package/tests/step-definitions/action.steps.js +167 -0
- package/tests/step-definitions/api.steps.js +732 -0
- package/tests/step-definitions/assertion.steps.js +352 -0
- package/tests/step-definitions/auth.steps.js +126 -0
- package/tests/step-definitions/clock.steps.js +128 -0
- package/tests/step-definitions/cookie.steps.js +216 -0
- package/tests/step-definitions/debug.steps.js +39 -0
- package/tests/step-definitions/dialog.steps.js +193 -0
- package/tests/step-definitions/drupal-canvas.steps.js +764 -0
- package/tests/step-definitions/drupal-ckeditor.steps.js +108 -0
- package/tests/step-definitions/drupal-core.steps.js +665 -0
- package/tests/step-definitions/drupal-helpers.js +371 -0
- package/tests/step-definitions/drupal-layout-builder.steps.js +466 -0
- package/tests/step-definitions/drupal-media.steps.js +99 -0
- package/tests/step-definitions/drupal-moderation.steps.js +71 -0
- package/tests/step-definitions/drupal-paragraphs.steps.js +50 -0
- package/tests/step-definitions/element.steps.js +356 -0
- package/tests/step-definitions/field.steps.js +653 -0
- package/tests/step-definitions/file-download.steps.js +211 -0
- package/tests/step-definitions/form.steps.js +333 -0
- package/tests/step-definitions/iframe.steps.js +228 -0
- package/tests/step-definitions/input.steps.js +202 -0
- package/tests/step-definitions/javascript.steps.js +232 -0
- package/tests/step-definitions/keyboard.steps.js +112 -0
- package/tests/step-definitions/link.steps.js +142 -0
- package/tests/step-definitions/metatag.steps.js +91 -0
- package/tests/step-definitions/modal.steps.js +244 -0
- package/tests/step-definitions/navigation.steps.js +218 -0
- package/tests/step-definitions/network.steps.js +280 -0
- package/tests/step-definitions/path.steps.js +141 -0
- package/tests/step-definitions/response.steps.js +98 -0
- package/tests/step-definitions/responsive.steps.js +125 -0
- package/tests/step-definitions/rest.steps.js +111 -0
- package/tests/step-definitions/screenshot.steps.js +423 -0
- package/tests/step-definitions/scroll.steps.js +189 -0
- package/tests/step-definitions/selectors.steps.js +1003 -0
- package/tests/step-definitions/storage.steps.js +194 -0
- package/tests/step-definitions/table.steps.js +181 -0
- package/tests/step-definitions/varbase-e2e.js +897 -0
- package/tests/step-definitions/varbase.steps.js +458 -0
- package/tests/step-definitions/video.steps.js +178 -0
- package/tests/step-definitions/wait.steps.js +400 -0
- package/tests/step-definitions/web-first.steps.js +298 -0
- package/tests/step-definitions/xml.steps.js +411 -0
- package/tests/step-definitions/yaml.steps.js +913 -0
- package/tsconfig.json +26 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
|
|
2
|
+
# When I check "checkbox"
|
|
3
|
+
|
|
4
|
+
## Step Definition
|
|
5
|
+
|
|
6
|
+
This step definition serves as a command to mark/select a checkbox.
|
|
7
|
+
|
|
8
|
+
**Gherkin Pattern:**
|
|
9
|
+
```
|
|
10
|
+
When (I|we)* check "([^"]*)?"
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Description
|
|
14
|
+
|
|
15
|
+
Define the step of checking the checkbox element specified by id|class|name|label.
|
|
16
|
+
|
|
17
|
+
## Examples
|
|
18
|
+
|
|
19
|
+
**Example (1): label**
|
|
20
|
+
```
|
|
21
|
+
When I check "Remember me"
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
**Example (2): id/class**
|
|
25
|
+
```
|
|
26
|
+
When I check "rememberme"
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## More examples
|
|
30
|
+
|
|
31
|
+
<!-- generated: extended-examples -->
|
|
32
|
+
|
|
33
|
+
### Example 1
|
|
34
|
+
|
|
35
|
+
```gherkin
|
|
36
|
+
When I check "Remember me"
|
|
37
|
+
And I press "Sign in"
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Example 2
|
|
41
|
+
|
|
42
|
+
```gherkin
|
|
43
|
+
When I check "#newsletter"
|
|
44
|
+
Then the "#newsletter" checkbox should be checked
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Example 3
|
|
48
|
+
|
|
49
|
+
```gherkin
|
|
50
|
+
When we check ".terms"
|
|
51
|
+
And I press "Continue"
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Example 4
|
|
55
|
+
|
|
56
|
+
```gherkin
|
|
57
|
+
When I check "Subscribe to updates"
|
|
58
|
+
Then the checkbox "#subscribe" is checked
|
|
59
|
+
```
|
|
60
|
+
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
|
|
2
|
+
# When I click "link"
|
|
3
|
+
|
|
4
|
+
## Step Definition
|
|
5
|
+
|
|
6
|
+
```gherkin
|
|
7
|
+
When (I|we)* click "([^"]*)?"
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
## Description
|
|
11
|
+
|
|
12
|
+
This step definition functions as a command to click a link, ensuring correct navigation to the expected page. It allows you to define the step for clicking the link by its text.
|
|
13
|
+
|
|
14
|
+
## Example
|
|
15
|
+
|
|
16
|
+
```gherkin
|
|
17
|
+
When I click "Contact Us"
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## More examples
|
|
21
|
+
|
|
22
|
+
<!-- generated: extended-examples -->
|
|
23
|
+
|
|
24
|
+
### Example 1
|
|
25
|
+
|
|
26
|
+
```gherkin
|
|
27
|
+
When I click "About"
|
|
28
|
+
Then I should be on "/about"
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Example 2
|
|
32
|
+
|
|
33
|
+
```gherkin
|
|
34
|
+
When I click "Read more"
|
|
35
|
+
And I wait for AJAX to finish
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### Example 3
|
|
39
|
+
|
|
40
|
+
```gherkin
|
|
41
|
+
When we click "Contact"
|
|
42
|
+
Then "<form#contact>" should be visible
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Example 4
|
|
46
|
+
|
|
47
|
+
```gherkin
|
|
48
|
+
When I click "main-nav-link" by attr
|
|
49
|
+
Then I should see "Pricing"
|
|
50
|
+
```
|
|
51
|
+
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
|
|
2
|
+
# When I click "operation" in "text" row
|
|
3
|
+
|
|
4
|
+
## Step Definition
|
|
5
|
+
|
|
6
|
+
```
|
|
7
|
+
When (I |we )*click "([^"]*)?" in( the)* "([^"]*)?" row$
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
## Description
|
|
11
|
+
|
|
12
|
+
This step locates a table, finds a row containing specified identifier text, and clicks on the target text within that row.
|
|
13
|
+
|
|
14
|
+
## Functionality
|
|
15
|
+
|
|
16
|
+
The step performs a targeted click on specific text within a table row that contains a given identifier.
|
|
17
|
+
|
|
18
|
+
## Examples
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
When I click "Edit" in the "John Smith" row
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
When I click "Delete" in the "Product A" row
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
When we click "View Details" in the "Order #12345" row
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
And I click "Download" in the "Report 2024" row
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Parameters
|
|
37
|
+
|
|
38
|
+
- **First parameter** ("operation"): The clickable text/action within the row
|
|
39
|
+
- **Second parameter** ("text"): The identifier text that locates the specific row
|
|
40
|
+
|
|
41
|
+
## More examples
|
|
42
|
+
|
|
43
|
+
<!-- generated: extended-examples -->
|
|
44
|
+
|
|
45
|
+
### Example 1
|
|
46
|
+
|
|
47
|
+
```gherkin
|
|
48
|
+
When I click "Edit" in the "Alice Smith" row
|
|
49
|
+
Then I should see "Edit user"
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Example 2
|
|
53
|
+
|
|
54
|
+
```gherkin
|
|
55
|
+
When I click "Delete" in the "Project Alpha" row
|
|
56
|
+
And I wait for the modal to appear
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Example 3
|
|
60
|
+
|
|
61
|
+
```gherkin
|
|
62
|
+
When we click "Download" in the "Report 2026" row
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Example 4
|
|
66
|
+
|
|
67
|
+
```gherkin
|
|
68
|
+
When I click "Approve" in the "Order #1234" row
|
|
69
|
+
And I wait for AJAX to finish
|
|
70
|
+
```
|
|
71
|
+
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
|
|
2
|
+
# When I fill in
|
|
3
|
+
|
|
4
|
+
## Overview
|
|
5
|
+
|
|
6
|
+
"These step definitions are used to simulate user input of data into different fields or form elements." The purpose is to verify website functionality related to data entry and form submission.
|
|
7
|
+
|
|
8
|
+
## Available Step Definitions
|
|
9
|
+
|
|
10
|
+
1. **When I fill in "field" with "value"**
|
|
11
|
+
2. **When I fill in "field" with "value" by its attribute**
|
|
12
|
+
3. **When I fill in "value" for "field"**
|
|
13
|
+
4. **When I fill in "value" for "field" by its attribute**
|
|
14
|
+
5. **When I fill in "field" with:**
|
|
15
|
+
6. **When I fill in "field" with an empty value by its attribute**
|
|
16
|
+
7. **When I fill in the following:**
|
|
17
|
+
8. **When I fill in the following: by its attribute**
|
|
18
|
+
|
|
19
|
+
Each variant supports different approaches to locating form elements—whether by label text, CSS selectors, or HTML attributes—and accommodates both single-field and multi-field input scenarios.
|
|
20
|
+
|
|
21
|
+
## More examples
|
|
22
|
+
|
|
23
|
+
<!-- generated: extended-examples -->
|
|
24
|
+
|
|
25
|
+
### Example 1
|
|
26
|
+
|
|
27
|
+
```gherkin
|
|
28
|
+
When I fill in "Email" with "alice@example.com"
|
|
29
|
+
And I press "Sign in"
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Example 2
|
|
33
|
+
|
|
34
|
+
```gherkin
|
|
35
|
+
When I fill in "username" with "alice" by attr
|
|
36
|
+
And I fill in "password" with "s3cret" by attr
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Example 3
|
|
40
|
+
|
|
41
|
+
```gherkin
|
|
42
|
+
When I fill in the following:
|
|
43
|
+
| First name | Alice |
|
|
44
|
+
| Last name | Smith |
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Example 4
|
|
48
|
+
|
|
49
|
+
```gherkin
|
|
50
|
+
When I fill in "alice" for "#user"
|
|
51
|
+
And I press "Submit"
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Example 5
|
|
55
|
+
|
|
56
|
+
```gherkin
|
|
57
|
+
When I fill in "Hello" for "Your message" by its "placeholder" attribute
|
|
58
|
+
```
|
|
59
|
+
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
|
|
2
|
+
# When I go to the homepage
|
|
3
|
+
|
|
4
|
+
## Step Definition
|
|
5
|
+
|
|
6
|
+
The Gherkin step pattern for this navigation action is:
|
|
7
|
+
|
|
8
|
+
```
|
|
9
|
+
When (I go |I navigate |we go |we navigate |navigating )?to( the)* (homepage|frontpage)
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## Description
|
|
13
|
+
|
|
14
|
+
This step definition enables users to navigate to the website's homepage during testing. The implementation varies based on the testing framework, potentially involving clicking navigation elements, entering URLs directly, or executing predefined navigation commands in web applications.
|
|
15
|
+
|
|
16
|
+
## Usage Examples
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
When I go to homepage
|
|
20
|
+
|
|
21
|
+
When I go to the homepage
|
|
22
|
+
|
|
23
|
+
When I navigate to the homepage
|
|
24
|
+
|
|
25
|
+
When navigating to the homepage
|
|
26
|
+
|
|
27
|
+
When navigating to homepage
|
|
28
|
+
|
|
29
|
+
When navigating to the frontpage
|
|
30
|
+
|
|
31
|
+
When we go to the homepage
|
|
32
|
+
|
|
33
|
+
When we navigate to the homepage
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## More examples
|
|
37
|
+
|
|
38
|
+
<!-- generated: extended-examples -->
|
|
39
|
+
|
|
40
|
+
### Example 1
|
|
41
|
+
|
|
42
|
+
```gherkin
|
|
43
|
+
When I go to the homepage
|
|
44
|
+
Then "<#hero>" should be visible
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Example 2
|
|
48
|
+
|
|
49
|
+
```gherkin
|
|
50
|
+
When we navigate to homepage
|
|
51
|
+
Then I should see "Welcome"
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Example 3
|
|
55
|
+
|
|
56
|
+
```gherkin
|
|
57
|
+
When navigating to the frontpage
|
|
58
|
+
Then I should be on "/"
|
|
59
|
+
```
|
|
60
|
+
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
|
|
2
|
+
# When I go to "specific page"
|
|
3
|
+
|
|
4
|
+
## Step Definition
|
|
5
|
+
|
|
6
|
+
The Gherkin step syntax is:
|
|
7
|
+
|
|
8
|
+
```
|
|
9
|
+
When (I go |I navigate |we go |we navigate |navigating )?to "([^"]*)?"
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## Description
|
|
13
|
+
|
|
14
|
+
This step definition enables users to navigate to a particular page within the website under test. The actual implementation varies based on the testing framework employed. For web applications, this typically involves selecting a hyperlink or button, entering a URL directly, or leveraging a built-in navigation function.
|
|
15
|
+
|
|
16
|
+
## Examples
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
When I go to "contact"
|
|
20
|
+
|
|
21
|
+
When I go to "/user/login"
|
|
22
|
+
|
|
23
|
+
When I navigate to "/admin/dashboard"
|
|
24
|
+
|
|
25
|
+
When navigating to "/products"
|
|
26
|
+
|
|
27
|
+
When we go to "/products"
|
|
28
|
+
|
|
29
|
+
When we navigate to "/terms"
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Key Details
|
|
33
|
+
|
|
34
|
+
This step accepts flexible phrasing with multiple variations including "go," "navigate," and collective pronouns ("we"). The page identifier is captured as a parameter in quotation marks and can represent either a page name or a complete URL path.
|
|
35
|
+
|
|
36
|
+
## More examples
|
|
37
|
+
|
|
38
|
+
<!-- generated: extended-examples -->
|
|
39
|
+
|
|
40
|
+
### Example 1
|
|
41
|
+
|
|
42
|
+
```gherkin
|
|
43
|
+
When I go to "/about"
|
|
44
|
+
Then I should see "Our mission"
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Example 2
|
|
48
|
+
|
|
49
|
+
```gherkin
|
|
50
|
+
When I navigate to "/admin/dashboard"
|
|
51
|
+
And I wait until the URL contains "/dashboard"
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Example 3
|
|
55
|
+
|
|
56
|
+
```gherkin
|
|
57
|
+
When we go to "/cart"
|
|
58
|
+
Then "<#cart-list>" should be visible
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Example 4
|
|
62
|
+
|
|
63
|
+
```gherkin
|
|
64
|
+
When navigating to "/products"
|
|
65
|
+
Then I should see at least 5 ".product-card" elements
|
|
66
|
+
```
|
|
67
|
+
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
|
|
2
|
+
# When I move backward one page
|
|
3
|
+
|
|
4
|
+
## Gherkin Step
|
|
5
|
+
|
|
6
|
+
```gherkin
|
|
7
|
+
When (I|we)* move backward one page
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
## Description
|
|
11
|
+
|
|
12
|
+
This step definition represents user interaction for navigating backward through a series of pages on a website. It's commonly employed when browsing paginated lists—allowing testers to visit each page, execute necessary tests, and return to the main list page before advancing to the subsequent page.
|
|
13
|
+
|
|
14
|
+
## Technical Details
|
|
15
|
+
|
|
16
|
+
- **Sentence Definition Type**: Static (no probabilities)
|
|
17
|
+
- **Common Use Case**: Paginated list navigation and testing workflows
|
|
18
|
+
|
|
19
|
+
## Related Step Definitions
|
|
20
|
+
|
|
21
|
+
The documentation includes related navigation steps such as "When I move forward one page" and "When I reload the page," available within the Varbase E2E 2.0.x step definitions library.
|
|
22
|
+
|
|
23
|
+
## More examples
|
|
24
|
+
|
|
25
|
+
<!-- generated: extended-examples -->
|
|
26
|
+
|
|
27
|
+
### Example 1
|
|
28
|
+
|
|
29
|
+
```gherkin
|
|
30
|
+
When I follow "About"
|
|
31
|
+
And I move backward one page
|
|
32
|
+
Then I should be on the homepage
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Example 2
|
|
36
|
+
|
|
37
|
+
```gherkin
|
|
38
|
+
When I go to "/cart"
|
|
39
|
+
And I move backward one page
|
|
40
|
+
Then I should be on "/products"
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Example 3
|
|
44
|
+
|
|
45
|
+
```gherkin
|
|
46
|
+
When we move backward one page
|
|
47
|
+
And I wait for AJAX to finish
|
|
48
|
+
```
|
|
49
|
+
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
|
|
2
|
+
# When I move forward one page
|
|
3
|
+
|
|
4
|
+
## Gherkin Step Definition
|
|
5
|
+
|
|
6
|
+
```gherkin
|
|
7
|
+
When (I|we)* move forward one page
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
## Description
|
|
11
|
+
|
|
12
|
+
This step definition represents a user action for navigating forward through a sequence of pages on a website. It's typically employed after the user has moved backward one or more pages and then decides to advance forward again.
|
|
13
|
+
|
|
14
|
+
## Usage Context
|
|
15
|
+
|
|
16
|
+
The step is commonly used in scenarios where:
|
|
17
|
+
- A user has previously navigated backward through multiple pages
|
|
18
|
+
- The user then chooses to move forward one page
|
|
19
|
+
- This action may be repeated for additional forward navigation steps
|
|
20
|
+
|
|
21
|
+
## Technical Details
|
|
22
|
+
|
|
23
|
+
- **Static sentence definition**: Yes
|
|
24
|
+
- **Probabilities**: None (static definition)
|
|
25
|
+
|
|
26
|
+
## Purpose
|
|
27
|
+
|
|
28
|
+
This step allows test authors to validate browser navigation behavior, simulating user interactions with browser forward button functionality or equivalent page navigation controls.
|
|
29
|
+
|
|
30
|
+
## More examples
|
|
31
|
+
|
|
32
|
+
<!-- generated: extended-examples -->
|
|
33
|
+
|
|
34
|
+
### Example 1
|
|
35
|
+
|
|
36
|
+
```gherkin
|
|
37
|
+
When I move backward one page
|
|
38
|
+
And I move forward one page
|
|
39
|
+
Then I should be on "/about"
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Example 2
|
|
43
|
+
|
|
44
|
+
```gherkin
|
|
45
|
+
When I go to "/x"
|
|
46
|
+
And I go to "/y"
|
|
47
|
+
And I move backward one page
|
|
48
|
+
And I move forward one page
|
|
49
|
+
Then I should be on "/y"
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Example 3
|
|
53
|
+
|
|
54
|
+
```gherkin
|
|
55
|
+
When we move forward one page
|
|
56
|
+
And I wait until the page is interactive
|
|
57
|
+
```
|
|
58
|
+
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
|
|
2
|
+
# When I press "button"
|
|
3
|
+
|
|
4
|
+
## Step Definition
|
|
5
|
+
|
|
6
|
+
**Gherkin Syntax:**
|
|
7
|
+
```
|
|
8
|
+
When (I|we)* press "([^"]*)?"
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Description
|
|
12
|
+
|
|
13
|
+
This step definition executes a command to press a button by its text, ensuring the correct execution of the expected action.
|
|
14
|
+
|
|
15
|
+
## Example
|
|
16
|
+
|
|
17
|
+
**By text:**
|
|
18
|
+
```
|
|
19
|
+
When I press "Log In"
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Related Documentation
|
|
23
|
+
|
|
24
|
+
This step is part of the Varbase E2E 2.0.x Step Definitions documentation and has a sub-variant:
|
|
25
|
+
- When I press "button" by attribute
|
|
26
|
+
|
|
27
|
+
## More examples
|
|
28
|
+
|
|
29
|
+
<!-- generated: extended-examples -->
|
|
30
|
+
|
|
31
|
+
### Example 1
|
|
32
|
+
|
|
33
|
+
```gherkin
|
|
34
|
+
When I press "Sign in"
|
|
35
|
+
And I wait until the URL contains "/dashboard"
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### Example 2
|
|
39
|
+
|
|
40
|
+
```gherkin
|
|
41
|
+
When I press the "Submit" button
|
|
42
|
+
And I wait for AJAX to finish
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Example 3
|
|
46
|
+
|
|
47
|
+
```gherkin
|
|
48
|
+
When we press "Cancel"
|
|
49
|
+
Then I should not see the modal
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Example 4
|
|
53
|
+
|
|
54
|
+
```gherkin
|
|
55
|
+
When I press "save-btn" by attr
|
|
56
|
+
Then I should see "Saved"
|
|
57
|
+
```
|
|
58
|
+
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
|
|
2
|
+
# When I reload the page
|
|
3
|
+
|
|
4
|
+
## Step Definition
|
|
5
|
+
|
|
6
|
+
```gherkin
|
|
7
|
+
When (I|we)* reload( the)* page
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
## Description
|
|
11
|
+
|
|
12
|
+
This step definition is employed in website testing to signal that the user is refreshing the current page. It's typically used after executing an event on the page, when results are expected to appear following a page reload.
|
|
13
|
+
|
|
14
|
+
## Usage Examples
|
|
15
|
+
|
|
16
|
+
```gherkin
|
|
17
|
+
When I reload the page
|
|
18
|
+
When we reload page
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Context
|
|
22
|
+
|
|
23
|
+
The step definition supports flexible phrasing with optional words, allowing testers to write natural language scenarios. It's part of the Varbase E2E 2.0.x testing framework and appears within the broader "Step Definitions" documentation section alongside other navigation and interaction steps.
|
|
24
|
+
|
|
25
|
+
## More examples
|
|
26
|
+
|
|
27
|
+
<!-- generated: extended-examples -->
|
|
28
|
+
|
|
29
|
+
### Example 1
|
|
30
|
+
|
|
31
|
+
```gherkin
|
|
32
|
+
When I reload
|
|
33
|
+
Then I should see "Welcome"
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Example 2
|
|
37
|
+
|
|
38
|
+
```gherkin
|
|
39
|
+
When I press "Save"
|
|
40
|
+
And I reload the page
|
|
41
|
+
Then I should see "Saved"
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Example 3
|
|
45
|
+
|
|
46
|
+
```gherkin
|
|
47
|
+
When we reload page
|
|
48
|
+
And I wait for AJAX to finish
|
|
49
|
+
Then "<.spinner>" should not be visible
|
|
50
|
+
```
|
|
51
|
+
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
|
|
2
|
+
# When I Scroll
|
|
3
|
+
|
|
4
|
+
## Overview
|
|
5
|
+
|
|
6
|
+
"Use this step when you want to simulate a scroll action on the page during your automated testing scenario. It can be helpful to test lazy-loaded elements, infinite scroll areas, or to simply bring specific elements into view."
|
|
7
|
+
|
|
8
|
+
## Available Scroll Step Definitions
|
|
9
|
+
|
|
10
|
+
The following scroll-related steps are available in Varbase E2E 2.0.x:
|
|
11
|
+
|
|
12
|
+
- When I scroll down
|
|
13
|
+
- When I scroll up
|
|
14
|
+
- When I scroll to top
|
|
15
|
+
- When I scroll to the bottom
|
|
16
|
+
- When I scroll to top of "<selector>"
|
|
17
|
+
- When I scroll to bottom of "<selector>"
|
|
18
|
+
- When I scroll right
|
|
19
|
+
- When I scroll left
|
|
20
|
+
- When I scroll to start
|
|
21
|
+
- When I scroll to the end
|
|
22
|
+
- When I scroll to start of "<selector>"
|
|
23
|
+
- When I scroll to end of "<selector>"
|
|
24
|
+
|
|
25
|
+
Each step enables testing of different scrolling behaviors to validate page functionality, element visibility, and lazy-loading mechanisms within automated testing scenarios.
|
|
26
|
+
|
|
27
|
+
## More examples
|
|
28
|
+
|
|
29
|
+
<!-- generated: extended-examples -->
|
|
30
|
+
|
|
31
|
+
### Example 1
|
|
32
|
+
|
|
33
|
+
```gherkin
|
|
34
|
+
When I scroll down
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Example 2
|
|
38
|
+
|
|
39
|
+
```gherkin
|
|
40
|
+
When I scroll down 800
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Example 3
|
|
44
|
+
|
|
45
|
+
```gherkin
|
|
46
|
+
And I scroll to the top
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Example 4
|
|
50
|
+
|
|
51
|
+
```gherkin
|
|
52
|
+
When I scroll to the bottom
|
|
53
|
+
And I wait for AJAX to finish
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Example 5
|
|
57
|
+
|
|
58
|
+
```gherkin
|
|
59
|
+
When I scroll to top of "#sidebar"
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Example 6
|
|
63
|
+
|
|
64
|
+
```gherkin
|
|
65
|
+
And we scroll to bottom of "#log-panel"
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Example 7
|
|
69
|
+
|
|
70
|
+
```gherkin
|
|
71
|
+
When I scroll right 500
|
|
72
|
+
```
|
|
73
|
+
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
|
|
2
|
+
# When I select "option" from "select list"
|
|
3
|
+
|
|
4
|
+
## Step Definition
|
|
5
|
+
|
|
6
|
+
```
|
|
7
|
+
When (I|we)* select "([^"]*)?" from "([^"]*)?"
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
## Description
|
|
11
|
+
|
|
12
|
+
"This step definition acts as a command to select an option from a dropdown list." The mechanism identifies a select element by its associated label, then selects the matching option based on its displayed text.
|
|
13
|
+
|
|
14
|
+
## Example
|
|
15
|
+
|
|
16
|
+
**Selection by label:**
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
When we select "Mercedes" from "Cars"
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
This syntax allows test authors to select dropdown values using human-readable option names and field labels rather than technical selectors.
|
|
23
|
+
|
|
24
|
+
## More examples
|
|
25
|
+
|
|
26
|
+
<!-- generated: extended-examples -->
|
|
27
|
+
|
|
28
|
+
### Example 1
|
|
29
|
+
|
|
30
|
+
```gherkin
|
|
31
|
+
When I select "Mercedes" from "Cars"
|
|
32
|
+
Then I should see "Mercedes selected"
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Example 2
|
|
36
|
+
|
|
37
|
+
```gherkin
|
|
38
|
+
When I select "saab" from "#cars"
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Example 3
|
|
42
|
+
|
|
43
|
+
```gherkin
|
|
44
|
+
When we select "English" from "Language"
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Example 4
|
|
48
|
+
|
|
49
|
+
```gherkin
|
|
50
|
+
When I select "Premium" from "Plan"
|
|
51
|
+
And I press "Continue"
|
|
52
|
+
```
|
|
53
|
+
|