@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,10 @@
|
|
|
1
|
+
Feature: An example to ensure that you are on a specific page
|
|
2
|
+
As an anonymous user,
|
|
3
|
+
I want to ensure that I am on a specific page
|
|
4
|
+
|
|
5
|
+
Scenario: Ensure that you are on a specific page
|
|
6
|
+
Given I am on the homepage
|
|
7
|
+
When I go to "/about-us.html"
|
|
8
|
+
Then I should be on "/about-us.html"
|
|
9
|
+
When I move backward one page
|
|
10
|
+
Then I should be on homepage
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
Feature: An example to ensure that you are on the homepage
|
|
2
|
+
As an anonymous user,
|
|
3
|
+
I want to ensure that I am on the homepage
|
|
4
|
+
|
|
5
|
+
Scenario: Ensure that you are on the homepage
|
|
6
|
+
Given I am on the homepage
|
|
7
|
+
When I go to "/about-us.html"
|
|
8
|
+
And I move backward one page
|
|
9
|
+
And I wait max of 3 seconds
|
|
10
|
+
Then I should be on the homepage
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
Feature: An example to ensure that a specific element is not visible on the current page by its attribute
|
|
2
|
+
As a user,
|
|
3
|
+
I want to ensure that when I'm on a particular page, I do not see a specific element identified by its attribute
|
|
4
|
+
|
|
5
|
+
Scenario: Ensure that a specific element is not visible based on its attribute
|
|
6
|
+
Given I am on "/test--then--i-should--see-text-in-element.html"
|
|
7
|
+
Then I should not see an "emailId" element by its "id" attr
|
|
8
|
+
And I should not see a "countryCss" element by attr
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
Feature: An example to ensure that a specific element is not visible on the current page by its label
|
|
2
|
+
As a user,
|
|
3
|
+
I want to ensure that when I'm on a particular page, I do not see a specific element by its label
|
|
4
|
+
|
|
5
|
+
Scenario: Ensure to test that a specific element is not visible by its label
|
|
6
|
+
Given I am on "/test--then--i-should--see-text-in-element.html"
|
|
7
|
+
Then I should not see an "Eamil" element
|
|
8
|
+
And I should not see a "Country" element
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
Feature: An example to ensure visibility of a specific element on the current page by its attributes
|
|
2
|
+
As a user,
|
|
3
|
+
I want to make sure that when I'm on a particular page, I can see a specific element by its attributes
|
|
4
|
+
|
|
5
|
+
Scenario: Ensure visibility of a specific element by its attributes
|
|
6
|
+
Given I am on "/test--then--i-should--see-text-in-element.html"
|
|
7
|
+
Then I should see a "uname" element by its "id" attr
|
|
8
|
+
And I should see a "pwordcss" element by attr
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
Feature: An example to ensure that a specific element is visible on the current page by its label
|
|
2
|
+
As a user,
|
|
3
|
+
I want to ensure that when I'm on a particular page, I can see a specific element by its label
|
|
4
|
+
|
|
5
|
+
Scenario: Check to test seeing for a specific element by its label
|
|
6
|
+
Given I am on "/test--then--i-should--see-text-in-element.html"
|
|
7
|
+
Then I should see a "Username" element
|
|
8
|
+
And I should see a "Password" element
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
Feature: Assert the exact number of elements matching a selector
|
|
2
|
+
As a tester,
|
|
3
|
+
I want to assert how many elements match a CSS selector
|
|
4
|
+
so that I can catch regressions in list lengths, card counts, and nav items.
|
|
5
|
+
|
|
6
|
+
Scenario: Count h1 headings on the homepage
|
|
7
|
+
Given I am on homepage
|
|
8
|
+
Then I should see 1 "h1" element
|
|
9
|
+
|
|
10
|
+
Scenario: Count list items inside the first list on the homepage
|
|
11
|
+
Given I am on homepage
|
|
12
|
+
Then I should see 13 "ul:first-of-type li" elements
|
|
13
|
+
|
|
14
|
+
Scenario: Expect zero matches for a missing selector
|
|
15
|
+
Given I am on homepage
|
|
16
|
+
Then I should see 0 ".does-not-exist" elements
|
|
17
|
+
|
|
18
|
+
Scenario: Pronoun variant — "we"
|
|
19
|
+
Given I am on homepage
|
|
20
|
+
Then we should see 1 "h1" element
|
|
21
|
+
|
|
22
|
+
Scenario: No pronoun
|
|
23
|
+
Given I am on homepage
|
|
24
|
+
Then should see 1 "h1" element
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
Feature: Assert text visibility in table rows
|
|
2
|
+
As a test automation engineer
|
|
3
|
+
I want to verify text content within specific table rows
|
|
4
|
+
So that I can validate data accuracy and proper display in tables
|
|
5
|
+
|
|
6
|
+
Background:
|
|
7
|
+
Given I am on "/test--then--i-should-see-text-in-table-row.html"
|
|
8
|
+
|
|
9
|
+
Scenario: Verify employee information is displayed correctly
|
|
10
|
+
Then I should see "Admin" in the "John Smith" row
|
|
11
|
+
And I should see "john.smith@company.com" in the "John Smith" row
|
|
12
|
+
And I should see "Engineering" in the "John Smith" row
|
|
13
|
+
And I should see "Active" in the "John Smith" row
|
|
14
|
+
And I should see "$85,000" in the "John Smith" row
|
|
15
|
+
|
|
16
|
+
Scenario: Verify different employee roles are displayed
|
|
17
|
+
Then I should see "User" in the "Jane Doe" row
|
|
18
|
+
And I should see "Manager" in the "Bob Johnson" row
|
|
19
|
+
And I should see "User" in the "Alice Cooper" row
|
|
20
|
+
And I should not see "Admin" in the "Jane Doe" row
|
|
21
|
+
And I should not see "Admin" in the "Bob Johnson" row
|
|
22
|
+
|
|
23
|
+
Scenario: Verify employee status visibility
|
|
24
|
+
Then I should see "Active" in the "John Smith" row
|
|
25
|
+
And I should see "Active" in the "Jane Doe" row
|
|
26
|
+
And I should see "On Leave" in the "Bob Johnson" row
|
|
27
|
+
And I should see "Inactive" in the "Alice Cooper" row
|
|
28
|
+
And I should not see "Inactive" in the "John Smith" row
|
|
29
|
+
And I should not see "Active" in the "Alice Cooper" row
|
|
30
|
+
|
|
31
|
+
Scenario: Verify product inventory information
|
|
32
|
+
Then I should see "Wireless Headphones" in the "WH-2024-001" row
|
|
33
|
+
And I should see "$199.99" in the "Wireless Headphones" row
|
|
34
|
+
And I should see "150" in the "Wireless Headphones" row
|
|
35
|
+
And I should see "In Stock" in the "Wireless Headphones" row
|
|
36
|
+
And I should not see "Out of Stock" in the "Wireless Headphones" row
|
|
37
|
+
|
|
38
|
+
Scenario: Verify low stock and out of stock products
|
|
39
|
+
Then I should see "Low Stock" in the "Gaming Mouse" row
|
|
40
|
+
And I should see "5" in the "Gaming Mouse" row
|
|
41
|
+
And I should see "Out of Stock" in the "Office Chair" row
|
|
42
|
+
And I should see "0" in the "Office Chair" row
|
|
43
|
+
And I should not see "In Stock" in the "Gaming Mouse" row
|
|
44
|
+
And I should not see "In Stock" in the "Office Chair" row
|
|
45
|
+
|
|
46
|
+
Scenario: Verify order status information
|
|
47
|
+
Then I should see "Completed" in the "ORD-2024-001" row
|
|
48
|
+
And I should see "Michael Chen" in the "ORD-2024-001" row
|
|
49
|
+
And I should see "Processing" in the "ORD-2024-002" row
|
|
50
|
+
And I should see "Sarah Wilson" in the "ORD-2024-002" row
|
|
51
|
+
And I should see "Cancelled" in the "ORD-2024-003" row
|
|
52
|
+
And I should see "Shipped" in the "ORD-2024-004" row
|
|
53
|
+
|
|
54
|
+
Scenario: Verify negative assertions for order status
|
|
55
|
+
Then I should not see "Processing" in the "ORD-2024-001" row
|
|
56
|
+
And I should not see "Completed" in the "ORD-2024-002" row
|
|
57
|
+
And I should not see "Shipped" in the "ORD-2024-003" row
|
|
58
|
+
And I should not see "Cancelled" in the "ORD-2024-004" row
|
|
59
|
+
|
|
60
|
+
Scenario: Verify project information
|
|
61
|
+
Then I should see "Website Redesign" in the "John Smith" row
|
|
62
|
+
And I should see "75%" in the "Website Redesign" row
|
|
63
|
+
And I should see "High" in the "Website Redesign" row
|
|
64
|
+
And I should see "Mobile App" in the "Jane Doe" row
|
|
65
|
+
And I should see "45%" in the "Mobile App" row
|
|
66
|
+
And I should see "Medium" in the "Mobile App" row
|
|
67
|
+
|
|
68
|
+
Scenario: Verify project progress and priorities
|
|
69
|
+
Then I should see "90%" in the "API Integration" row
|
|
70
|
+
And I should see "High" in the "API Integration" row
|
|
71
|
+
And I should see "3 members" in the "API Integration" row
|
|
72
|
+
And I should not see "Low" in the "API Integration" row
|
|
73
|
+
And I should not see "100%" in the "API Integration" row
|
|
74
|
+
|
|
75
|
+
Scenario: Cross-table data verification
|
|
76
|
+
Then I should see "John Smith" in the "john.smith@company.com" row
|
|
77
|
+
And I should see "John Smith" in the "Website Redesign" row
|
|
78
|
+
And I should see "Jane Doe" in the "jane.doe@company.com" row
|
|
79
|
+
And I should see "Jane Doe" in the "Mobile App" row
|
|
80
|
+
And I should not see "Bob Johnson" in the "Website Redesign" row
|
|
81
|
+
And I should not see "Alice Cooper" in the "Mobile App" row
|
|
82
|
+
|
|
83
|
+
Scenario: Verify currency and numeric data
|
|
84
|
+
Then I should see "$199.99" in the "Wireless Headphones" row
|
|
85
|
+
And I should see "$79.99" in the "Gaming Mouse" row
|
|
86
|
+
And I should see "$299.99" in the "Office Chair" row
|
|
87
|
+
And I should see "$49.99" in the "Laptop Stand" row
|
|
88
|
+
And I should not see "$0.00" in the "Wireless Headphones" row
|
|
89
|
+
And I should not see "$999.99" in the "Gaming Mouse" row
|
|
90
|
+
|
|
91
|
+
Scenario: Verify date and timestamp information
|
|
92
|
+
Then I should see "2024-08-15" in the "ORD-2024-001" row
|
|
93
|
+
And I should see "2024-08-16" in the "ORD-2024-002" row
|
|
94
|
+
And I should see "2024-09-15" in the "Website Redesign" row
|
|
95
|
+
And I should see "2024-10-30" in the "Mobile App" row
|
|
96
|
+
And I should not see "2023-01-01" in the "ORD-2024-001" row
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
Feature: Debug helpers — print current URL and last response HTML
|
|
2
|
+
As a tester,
|
|
3
|
+
I want to dump the current URL and page HTML to the console
|
|
4
|
+
so that I can diagnose failures without attaching a debugger.
|
|
5
|
+
|
|
6
|
+
Scenario: Print current URL
|
|
7
|
+
Given I am on homepage
|
|
8
|
+
Then print current URL
|
|
9
|
+
|
|
10
|
+
Scenario: Print last response HTML
|
|
11
|
+
Given I am on homepage
|
|
12
|
+
Then print last response
|
|
13
|
+
|
|
14
|
+
Scenario: Print both in the same scenario
|
|
15
|
+
Given I am on homepage
|
|
16
|
+
Then print current URL
|
|
17
|
+
And print last response
|
|
18
|
+
|
|
19
|
+
Scenario: Print current URL after navigating
|
|
20
|
+
Given I am on "/about-us.html"
|
|
21
|
+
Then print current URL
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
Feature: An example of a test case for selecting a checkbox
|
|
2
|
+
As a tester,
|
|
3
|
+
I want to be able to check that the checkbox is checked or not
|
|
4
|
+
|
|
5
|
+
Scenario: Verify that the checkbox is checked
|
|
6
|
+
Given I am on "/test--then--the-checkbox-checked.html"
|
|
7
|
+
When I check "rememberMe"
|
|
8
|
+
And I check "PrivacyPolicy"
|
|
9
|
+
And I press "Register" by attr
|
|
10
|
+
Then the checkbox "#rememberMe" is checked
|
|
11
|
+
And I should see "Registration Done Successfully"
|
|
12
|
+
|
|
13
|
+
Scenario: Verify that the checkbox is not checked
|
|
14
|
+
Given I am on "/test--then--the-checkbox-checked.html"
|
|
15
|
+
When I check "PrivacyPolicy"
|
|
16
|
+
And I press "Register" by attr
|
|
17
|
+
Then the checkbox "#rememberMe" is not checked
|
|
18
|
+
Then I should see "Registration Done Successfully"
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
Feature: An example to assert the selection of a checkbox
|
|
2
|
+
As an anonymous user,
|
|
3
|
+
I want to ensure that a specific checkbox is checked before submitting a particular action
|
|
4
|
+
|
|
5
|
+
Scenario: Ensure that the checkbox is checked
|
|
6
|
+
Given I am on "/test--then--the-checkbox-checked.html"
|
|
7
|
+
When I check "PrivacyPolicy"
|
|
8
|
+
And I press "Register" by attr
|
|
9
|
+
Then the checkbox "#PrivacyPolicy" should be checked
|
|
10
|
+
And I should see "Registration Done Successfully"
|
|
11
|
+
|
|
12
|
+
Scenario: Ensure that the checkbox is not checked
|
|
13
|
+
Given I am on "/test--then--the-checkbox-checked.html"
|
|
14
|
+
When I press "Register" by attr
|
|
15
|
+
Then the "#PrivacyPolicy" checkbox should not be checked
|
|
16
|
+
And I should see "Please check Agree to Privacy Policy"
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
Feature: An example to verify whether the element contains a specific expected CSS property.
|
|
2
|
+
As a developer,
|
|
3
|
+
I want to verify whether the element contains a specific expected CSS property.
|
|
4
|
+
|
|
5
|
+
Scenario: Verify whether the element contains a specific expected CSS property
|
|
6
|
+
Given I am on "/test--then--the-element-should_not-contain-cssproperty.html"
|
|
7
|
+
Then I should see a "body" element by attr
|
|
8
|
+
When I press "Submit"
|
|
9
|
+
Then the "body" element should contain "background-color:white;"
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
Feature: An example to verify whether the element does not contain a specific expected CSS property.
|
|
2
|
+
As a developer,
|
|
3
|
+
I want to verify whether the element does not contain a specific expected CSS property.
|
|
4
|
+
|
|
5
|
+
Scenario: Verify whether the element does not contain a certain CSS property
|
|
6
|
+
Given I am on "/test--then--the-element-should_not-contain-cssproperty.html"
|
|
7
|
+
Then I should see a "body" element by attr
|
|
8
|
+
When I press "Submit"
|
|
9
|
+
Then the "#uname" element should not contain "border:solid 5px red;"
|
|
10
|
+
And the "pword" element should not contain "font-size: 28px;"
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
Feature: An example to verify whether the field contains a specific value identified by its element label
|
|
2
|
+
As a tester,
|
|
3
|
+
I want to verify whether the field has a specific value based on its element label
|
|
4
|
+
|
|
5
|
+
Scenario: Verify that the field has a particular value based on its element label
|
|
6
|
+
Given I am on "/test--then--i-should--not--see-text-in-element.html"
|
|
7
|
+
And I fill in "Username" with "user1"
|
|
8
|
+
Then the "Username" field should contain "user1"
|
|
9
|
+
When I press "Reset" by attr
|
|
10
|
+
And I fill in "Username" with "user2"
|
|
11
|
+
Then the "Username" field should contain "user2"
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
Feature: An example to ensure that the response page contains specific text
|
|
2
|
+
As a tester,
|
|
3
|
+
I want to navigate to a page to verify whether it contains specific text
|
|
4
|
+
|
|
5
|
+
Scenario: Ensure that the response page contains specific text
|
|
6
|
+
Given I am on the homepage
|
|
7
|
+
Then the response should contain "Welcome to the homepage"
|
|
8
|
+
|
|
9
|
+
Scenario: Ensure that the response page does not contain specific text
|
|
10
|
+
Given I am on the homepage
|
|
11
|
+
Then the response should not contain "Access denied"
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
Feature: An example to check the status code of a page response
|
|
2
|
+
As a tester,
|
|
3
|
+
I want to be able to check the status code of a page response
|
|
4
|
+
|
|
5
|
+
Scenario: Check the response status code for a non-existing page
|
|
6
|
+
Given I am on the homepage
|
|
7
|
+
When I go to "/not-existing-page.html"
|
|
8
|
+
And I wait max of 2 seconds
|
|
9
|
+
Then the response status code should be 404
|
|
10
|
+
And the response status code should not be 200
|
|
11
|
+
|
|
12
|
+
Scenario: Check the response status code for an existing page
|
|
13
|
+
Given I am on the homepage
|
|
14
|
+
When I go to "/existing-page.html"
|
|
15
|
+
And I wait max of 2 seconds
|
|
16
|
+
Then the response status code should not be 404
|
|
17
|
+
And the response status code should be 200
|
|
18
|
+
|
|
19
|
+
Scenario: Check the response status code for an API that returns a JSON format
|
|
20
|
+
Given I am on the homepage
|
|
21
|
+
When I go to "/example-api.json"
|
|
22
|
+
And I wait max of 2 seconds
|
|
23
|
+
Then the response status code should not be 404
|
|
24
|
+
And the response status code should be 200
|
|
25
|
+
|
|
26
|
+
Scenario: Check the response status code for a parameter in the API that returns JSON format
|
|
27
|
+
Given I am on the homepage
|
|
28
|
+
When I go to "/example-api.json?include=author"
|
|
29
|
+
And I wait max of 2 seconds
|
|
30
|
+
Then the response status code should not be 404
|
|
31
|
+
And the response status code should be 200
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
Feature: An example of checking for matching URLs based on a specific pattern
|
|
2
|
+
As a tester,
|
|
3
|
+
I want to ensure that the current page path matches a specific pattern
|
|
4
|
+
|
|
5
|
+
Scenario: Ensure that the current page path matches the URL pattern that uses dashes between words
|
|
6
|
+
Given I am on "/test-acceptable-url-path.html"
|
|
7
|
+
Then the url should match "(https?:\/\/)?([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.[a-zA-Z]{2,}(:\d+)?(\/[^?#\s_]+)?(\?[^#\s_]+)?(#.*)?"
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
Feature: An example of checking the href attribute of a link element to see if it contains a specific URL, which is found by its attributes.
|
|
2
|
+
As a tester,
|
|
3
|
+
I want to be able to check link href if contain a specific URL found by its attributes
|
|
4
|
+
|
|
5
|
+
Scenario: Verify that the link contains "about" by its direct id, class attribute
|
|
6
|
+
Given I am on "/test--then--the-link-should-contain.html"
|
|
7
|
+
Then the "#aboutUsid" link should contain "about" by attr
|
|
8
|
+
And the ".contactUs" link should contain "/contact-" by attr
|
|
9
|
+
|
|
10
|
+
Scenario: Verify that the link contains "contact-" by its id, class attribute
|
|
11
|
+
Given I am on "/test--then--the-link-should-contain.html"
|
|
12
|
+
Then the "contactUsid" link should contain "/contact-" by its "id" attribute
|
|
13
|
+
And the "aboutUs" link should contain "about" by its "class" attribute
|
|
14
|
+
|
|
15
|
+
Scenario: Verify that the link contains "about" by its "Title" attribute
|
|
16
|
+
Given I am on "/test--then--the-link-should-contain.html"
|
|
17
|
+
Then the "aboutUsTitle" link should contain "about-us" by attr
|
|
18
|
+
And the "aboutUsTitle" link should contain "about-us" by its "title" attribute
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
Feature: An example of checking the href attribute of a link element to see if it contains a specific text.
|
|
2
|
+
As a tester,
|
|
3
|
+
I want to be able to check link href if contain a specific text
|
|
4
|
+
|
|
5
|
+
Scenario: Verify that the link contains "about"
|
|
6
|
+
Given I am on "/test--then--the-link-should-contain.html"
|
|
7
|
+
Then the "About us" link should contain "about"
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
Feature: Add an option to a multi-select without clearing existing selection
|
|
2
|
+
As a tester,
|
|
3
|
+
I want to build up a multi-select selection across multiple steps
|
|
4
|
+
so that I can test <select multiple> workflows one option at a time.
|
|
5
|
+
|
|
6
|
+
Scenario: Add two colors to an empty Colors multi-select
|
|
7
|
+
Given I am on "/test--when--i-additionally-select.html"
|
|
8
|
+
When I additionally select "Red" from "Colors"
|
|
9
|
+
And I additionally select "Blue" from "Colors"
|
|
10
|
+
|
|
11
|
+
Scenario: Start with one, then add two more
|
|
12
|
+
Given I am on "/test--when--i-additionally-select.html"
|
|
13
|
+
When I select "Red" from "Colors"
|
|
14
|
+
And I additionally select "Blue" from "Colors"
|
|
15
|
+
And I additionally select "Green" from "Colors"
|
|
16
|
+
|
|
17
|
+
Scenario: Pronoun variant — "we"
|
|
18
|
+
Given I am on "/test--when--i-additionally-select.html"
|
|
19
|
+
When we additionally select "Red" from "Colors"
|
|
20
|
+
And we additionally select "Yellow" from "Colors"
|
|
21
|
+
|
|
22
|
+
Scenario: No pronoun
|
|
23
|
+
Given I am on "/test--when--i-additionally-select.html"
|
|
24
|
+
When additionally select "Admin" from "Roles"
|
|
25
|
+
And additionally select "Editor" from "Roles"
|
|
26
|
+
|
|
27
|
+
Scenario: Multi-select on a second select on the same page
|
|
28
|
+
Given I am on "/test--when--i-additionally-select.html"
|
|
29
|
+
When I additionally select "Admin" from "Roles"
|
|
30
|
+
And I additionally select "Viewer" from "Roles"
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
Feature: An example of checking the attachment of a file to a field
|
|
2
|
+
As a tester,
|
|
3
|
+
I want to be able to attach a file (e.g., images) to a field
|
|
4
|
+
|
|
5
|
+
Scenario: Checking the attachment of an image to a field
|
|
6
|
+
Given I am on "/test--when--i-attach-file-to-feild.html"
|
|
7
|
+
When I attach the file "vardot.png" to "#fileUpload"
|
|
8
|
+
And I press "Submit" by attr
|
|
9
|
+
And I wait 2 second
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
Feature: An example of checking and unchecking a checkbox
|
|
2
|
+
As a tester,
|
|
3
|
+
I want to be able to check and uncheck a checkbox
|
|
4
|
+
|
|
5
|
+
Scenario: Implementing the ability to check and uncheck a checkbox
|
|
6
|
+
Given I am on "/test--when--i-check-uncheck-checkbox.html"
|
|
7
|
+
When I check "bike"
|
|
8
|
+
And I check "car"
|
|
9
|
+
And I press "Submit" by "value" attr
|
|
10
|
+
Then I should see "You have a Bike Car"
|
|
11
|
+
When I check "van"
|
|
12
|
+
And I press "Submit" by "value" attr
|
|
13
|
+
Then I should see "You have a Bike Car Van"
|
|
14
|
+
When I uncheck "bike"
|
|
15
|
+
And I press "Submit" by "value" attr
|
|
16
|
+
Then I should see "You have a Car Van"
|
|
17
|
+
When I uncheck "car"
|
|
18
|
+
When I uncheck "van"
|
|
19
|
+
And I press "Submit" by "value" attr
|
|
20
|
+
Then I should see "You have a"
|
|
21
|
+
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
Feature: An example of clicking a link by its attribute
|
|
2
|
+
As a tester,
|
|
3
|
+
I want to be able to click a link by its attribute
|
|
4
|
+
|
|
5
|
+
Scenario: Verify the action of clicking a link by targeting its ID attribute
|
|
6
|
+
Given I am on "/test--when--i-click-link.html"
|
|
7
|
+
When I click "#aboutUsid" by attr
|
|
8
|
+
And I wait max of 2 seconds
|
|
9
|
+
Then I should see "About Us"
|
|
10
|
+
|
|
11
|
+
Scenario: Verify the action of clicking a link by its ID attribute
|
|
12
|
+
Given I am on "/test--when--i-click-link.html"
|
|
13
|
+
When I click "aboutUsid" by its "id" attribute
|
|
14
|
+
And I wait max of 2 seconds
|
|
15
|
+
Then I should see "About Us"
|
|
16
|
+
|
|
17
|
+
Scenario: Verify the action of clicking a link by its class attribute
|
|
18
|
+
Given I am on "/test--when--i-click-link.html"
|
|
19
|
+
When I click "aboutUs" by "class" attr
|
|
20
|
+
And I wait max of 2 seconds
|
|
21
|
+
Then I should see "About Us"
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
Feature: An example of clicking a link by its text
|
|
2
|
+
As a tester,
|
|
3
|
+
I want to be able to click a link based on its text
|
|
4
|
+
|
|
5
|
+
Scenario: Verify clicking a link by its text
|
|
6
|
+
Given I am on "/test--when--i-click-link.html"
|
|
7
|
+
When I click "About us link"
|
|
8
|
+
And I wait max of 2 seconds
|
|
9
|
+
Then I should see "About Us"
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
Feature: Click specific text in table rows
|
|
2
|
+
As a test automation engineer
|
|
3
|
+
I want to be able to click on specific text within table rows
|
|
4
|
+
So that I can interact with table actions based on row content
|
|
5
|
+
|
|
6
|
+
Background:
|
|
7
|
+
Given I am on "/test--when--i-click-text-in-table-row.html"
|
|
8
|
+
|
|
9
|
+
Scenario: Click Edit button in John Smith row
|
|
10
|
+
When I click "Edit" in the "John Smith" row
|
|
11
|
+
Then I should see "Performed (edit) action on (John Smith)" in the "#action-message" element by attr
|
|
12
|
+
|
|
13
|
+
Scenario: Click View Details button in Jane Doe row
|
|
14
|
+
When I click "View Details" in the "Jane Doe" row
|
|
15
|
+
Then I should see "Performed (view) action on (Jane Doe)" in the "#action-message" element by attr
|
|
16
|
+
|
|
17
|
+
Scenario: Click Delete button in Bob Johnson row
|
|
18
|
+
When I click "Delete" in the "Bob Johnson" row
|
|
19
|
+
Then I should see "Performed (delete) action on (Bob Johnson)" in the "#action-message" element by attr
|
|
20
|
+
|
|
21
|
+
Scenario: Click Download link in Product A row
|
|
22
|
+
When I click "Download" in the "Product A" row
|
|
23
|
+
Then I should see "Performed (download) action on (Product A)" in the "#action-message" element by attr
|
|
24
|
+
|
|
25
|
+
Scenario: Click View Details in Order #12345 row
|
|
26
|
+
When I click "View Details" in the "Order #12345" row
|
|
27
|
+
Then I should see "Performed (view) action on (Order #12345)" in the "#action-message" element by attr
|
|
28
|
+
|
|
29
|
+
Scenario: Click Track in Order #67890 row
|
|
30
|
+
When I click "Track" in the "Order #67890" row
|
|
31
|
+
Then I should see "Performed (track) action on (Order #67890)" in the "#action-message" element by attr
|
|
32
|
+
|
|
33
|
+
Scenario: Multiple table interaction
|
|
34
|
+
When I click "Edit" in the "John Smith" row
|
|
35
|
+
And I wait 1 second
|
|
36
|
+
And I click "Download" in the "Product B" row
|
|
37
|
+
Then I should see "Performed (download) action on (Product B)" in the "#action-message" element by attr
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
Feature: An example of filling an input textbox with a value using its attributes.
|
|
2
|
+
As a tester,
|
|
3
|
+
I want to fill an input field with a value using its attributes.
|
|
4
|
+
|
|
5
|
+
Scenario: Fill in the input field using its ID and class attributes.
|
|
6
|
+
Given I am on "/test--when--i-fill-in.html"
|
|
7
|
+
When I fill in "#uname" with "John Smith" by attr
|
|
8
|
+
And I fill in "pwordcss" with "1234" by its "class" attr
|
|
9
|
+
When I press "Login"
|
|
10
|
+
Then I should see "You enter Username: John Smith and Password: 1234"
|
|
11
|
+
|
|
12
|
+
Scenario: Fill in the input field using its placeholder attribute.
|
|
13
|
+
Given I am on "/test--when--i-fill-in.html"
|
|
14
|
+
When I fill in "Your full name" with "John Smith" by its "placeholder" attr
|
|
15
|
+
And I fill in "Your Password" with "1234" by attr
|
|
16
|
+
When I press "Login"
|
|
17
|
+
Then I should see "You enter Username: John Smith and Password: 1234"
|
|
18
|
+
|
|
19
|
+
Scenario: Specify a value, then identify and use the field's attribute to fill in the input field.
|
|
20
|
+
Given I am on "/test--when--i-fill-in.html"
|
|
21
|
+
When I fill in "John Smith" for "#uname" by attr
|
|
22
|
+
When I fill in "1234" for "pwordcss" by attr
|
|
23
|
+
When I press "Login"
|
|
24
|
+
Then I should see "You enter Username: John Smith and Password: 1234"
|
|
25
|
+
|
|
26
|
+
Scenario: Fill in the input field with an empty value using its attribute.
|
|
27
|
+
Given I am on "/test--when--i-fill-in.html"
|
|
28
|
+
When I fill in "#uname" with: by attribute
|
|
29
|
+
And I fill in "password" with: by attr
|
|
30
|
+
When I press "Login" by attr
|
|
31
|
+
Then I should see "You enter Username: and Password:"
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
Feature: An example of populating a table of input fields with values using their attributes.
|
|
2
|
+
As a tester,
|
|
3
|
+
I want to be able to fill input text fields with values using their attributes.
|
|
4
|
+
|
|
5
|
+
Scenario: Check the filling of a table of input fields using different attributes.
|
|
6
|
+
Given I am on "/test--when--i-fill-in.html"
|
|
7
|
+
When I fill in the following: by attr
|
|
8
|
+
| #uname | John Smith |
|
|
9
|
+
| pwordcss | 1234 |
|
|
10
|
+
When I press "Login"
|
|
11
|
+
Then I should see "You enter Username: John Smith and Password: 1234"
|
|
12
|
+
|
|
13
|
+
Scenario: Check the filling of a table of input fields using the placeholder attribute.
|
|
14
|
+
Given I am on "/test--when--i-fill-in.html"
|
|
15
|
+
When I fill in the following: by its "placeholder" attribute
|
|
16
|
+
| Your full name | John Smith |
|
|
17
|
+
| Your Password | 1234 |
|
|
18
|
+
When I press "Login"
|
|
19
|
+
Then I should see "You enter Username: John Smith and Password: 1234"
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
Feature: An example of filling an input textbox with a value using its label.
|
|
2
|
+
As a tester,
|
|
3
|
+
I want to be able to fill input text fields with values using their labels.
|
|
4
|
+
|
|
5
|
+
Scenario: Check filling an input field with a value using its label.
|
|
6
|
+
Given I am on "/test--when--i-fill-in.html"
|
|
7
|
+
When I fill in "Username" with "John Smith"
|
|
8
|
+
When I fill in "Password" with "1234"
|
|
9
|
+
When I press "Login"
|
|
10
|
+
Then I should see "You enter Username: John Smith and Password: 1234"
|
|
11
|
+
|
|
12
|
+
Scenario: Check filling in a value for an input field using its label.
|
|
13
|
+
Given I am on "/test--when--i-fill-in.html"
|
|
14
|
+
When I fill in "John Smith" for "Username"
|
|
15
|
+
When I fill in "1234" for "Password"
|
|
16
|
+
When I press "Login"
|
|
17
|
+
Then I should see "You enter Username: John Smith and Password: 1234"
|
|
18
|
+
|
|
19
|
+
Scenario: Check filling an input field with an empty value using its label.
|
|
20
|
+
Given I am on "/test--when--i-fill-in.html"
|
|
21
|
+
When I fill in "Username" with:
|
|
22
|
+
And I fill in "Password" with:
|
|
23
|
+
When I press "Login"
|
|
24
|
+
Then I should see "You enter Username: and Password:"
|
|
25
|
+
|
|
26
|
+
Scenario: Check filling a table of input fields using their labels.
|
|
27
|
+
Given I am on "/test--when--i-fill-in.html"
|
|
28
|
+
When I fill in the following:
|
|
29
|
+
| Username | John Smith |
|
|
30
|
+
| Password | 1234 |
|
|
31
|
+
When I press "Login"
|
|
32
|
+
Then I should see "You enter Username: John Smith and Password: 1234"
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
Feature: Follow a link by its visible text
|
|
2
|
+
As a tester,
|
|
3
|
+
I want to follow a link by its visible anchor text
|
|
4
|
+
so that scenarios read like a user journey.
|
|
5
|
+
|
|
6
|
+
Scenario: Follow a link by its visible text
|
|
7
|
+
Given I am on "/test--when--i-click-link.html"
|
|
8
|
+
When I follow "About us link"
|
|
9
|
+
And I wait max of 2 seconds
|
|
10
|
+
Then I should see "About Us"
|
|
11
|
+
|
|
12
|
+
Scenario: Follow a link using the "we" pronoun
|
|
13
|
+
Given I am on "/test--when--i-click-link.html"
|
|
14
|
+
When we follow "About us link"
|
|
15
|
+
And I wait max of 2 seconds
|
|
16
|
+
Then I should see "About Us"
|
|
17
|
+
|
|
18
|
+
Scenario: Follow a link with no pronoun
|
|
19
|
+
Given I am on "/test--when--i-click-link.html"
|
|
20
|
+
When follow "About us link"
|
|
21
|
+
And I wait max of 2 seconds
|
|
22
|
+
Then I should see "About Us"
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
Feature: An example of testing whether the user is on any page and then navigating to the homepage.
|
|
2
|
+
As a user,
|
|
3
|
+
I want to be able to navigate to the homepage from another page.
|
|
4
|
+
So that I can check the welcome message on the homepage.
|
|
5
|
+
|
|
6
|
+
Scenario: Check if on the About Us page, then navigate to the homepage.
|
|
7
|
+
Given I am on "/about-us.html"
|
|
8
|
+
When I go to the homepage
|
|
9
|
+
Then I should see "Welcome to the homepage of the Varbase E2E Examples"
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
Feature: An example of navigating forward and backward by one page.
|
|
2
|
+
As a tester,
|
|
3
|
+
I want to be able to navigate forward and backward by one page.
|
|
4
|
+
|
|
5
|
+
Scenario: Check to navigate forward and backward one page
|
|
6
|
+
Given I am on the homepage
|
|
7
|
+
When I go to "/about-us.html"
|
|
8
|
+
Then I should see "About Us"
|
|
9
|
+
When I move backward one page
|
|
10
|
+
And I wait max of 3 seconds
|
|
11
|
+
Then I should see "Welcome to the homepage of the Varbase E2E Examples"
|
|
12
|
+
When I move forward one page
|
|
13
|
+
And I wait max of 3 seconds
|
|
14
|
+
Then I should see "About Us"
|