Parameterise a TestΒΆ
# examples/page/google.com-element-scoped-reference.yml
url: "https://www.google.com"
elements:
search_form: $"form[action=/search]"
# finds "[name=q]" within the context of search_form
# using basil parent-child syntax
search_input: $search_form >> $"[name=q]"
# finds "[type=submit]" within the context of search_form
# using basil parent-child syntax
search_button: $search_form >> $"[type=submit]"
# examples/step/assert-page-open-parameterised.yml
assertions:
- $page.url is $data.expected_url
- $page.title is $data.expected_title
# examples/step/google-query-parameterised.yml
actions:
- set $elements.search_input to $data.query_term
- click $elements.search_button
assertions:
- $page.title is $data.expected_title
# examples/test/google-search-parameterised.yml
config:
browsers:
- chrome
url: google_com.url
imports:
pages:
google_com: "../page/google.com-element-scoped-reference.yml"
steps:
assert_opened_page_step: "../step/assert-page-open-parameterised.yml"
query_step: "../step/google-search-query-parameterised.yml"
"verify Google is open":
use: assert_opened_page_step
data:
# Just one data set needed to verify the opened page
0:
expected_url: $config.url
expected_title: "Google"
"query":
use: query_step
data:
# Two data sets for querying
foo:
search_term: "foo"
expected_title: "foo - Google Search"
bar:
search_term: "bar"
expected_title: "bar - Google Search"
elements:
search_input: $google_com.elements.search_input
search_button: $google_com.elements.search_button