testcentricity_web 4.1.7 → 4.1.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/.simplecov +5 -1
  3. data/CHANGELOG.md +12 -1
  4. data/Gemfile.lock +1 -1
  5. data/README.md +3 -1
  6. data/Rakefile +29 -3
  7. data/config/cucumber.yml +11 -4
  8. data/config/test_data/LOCAL_data.json +15 -0
  9. data/config/test_data/LOCAL_data.xls +0 -0
  10. data/config/test_data/LOCAL_data.yml +11 -0
  11. data/config/test_data/data.json +13 -0
  12. data/config/test_data/data.yml +12 -4
  13. data/features/basic_form_page_css.feature +39 -0
  14. data/features/basic_form_page_xpath.feature +26 -0
  15. data/features/media_players.feature +4 -7
  16. data/features/step_definitions/generic_steps.rb.rb +65 -0
  17. data/features/support/data/form_data.rb +43 -0
  18. data/features/support/env.rb +3 -3
  19. data/features/support/hooks.rb +21 -1
  20. data/features/support/pages/base_test_page.rb +11 -0
  21. data/features/support/pages/{basic_css_test_page.rb → basic_css_form_page.rb} +3 -3
  22. data/features/support/pages/{basic_test_page.rb → basic_form_page.rb} +120 -24
  23. data/features/support/pages/{basic_xpath_test_page.rb → basic_xpath_form_page.rb} +3 -3
  24. data/features/support/pages/custom_controls_page.rb +2 -5
  25. data/features/support/pages/indexed_sections_page.rb +2 -5
  26. data/features/support/pages/media_test_page.rb +27 -14
  27. data/features/support/sections/header_nav.rb +11 -0
  28. data/features/support/world_data.rb +1 -1
  29. data/features/support/world_pages.rb +2 -2
  30. data/lib/testcentricity_web/appium_server.rb +5 -0
  31. data/lib/testcentricity_web/data_objects/data_objects_helper.rb +7 -0
  32. data/lib/testcentricity_web/data_objects/environment.rb +2 -0
  33. data/lib/testcentricity_web/data_objects/excel_helper.rb +60 -59
  34. data/lib/testcentricity_web/version.rb +1 -1
  35. data/lib/testcentricity_web/web_core/drag_drop_helper.rb +4 -0
  36. data/lib/testcentricity_web/web_core/page_objects_helper.rb +3 -1
  37. data/lib/testcentricity_web/web_core/webdriver_helper.rb +16 -0
  38. data/lib/testcentricity_web/web_elements/file_field.rb +9 -5
  39. data/lib/testcentricity_web/web_elements/image.rb +2 -1
  40. data/lib/testcentricity_web/web_elements/media.rb +1 -13
  41. data/lib/testcentricity_web/web_elements/ui_elements_helper.rb +20 -7
  42. data/lib/testcentricity_web/web_elements/video.rb +2 -2
  43. data/test_site/basic_test_page.html +1 -1
  44. data/test_site/media/count_and_bars.mp4 +0 -0
  45. data/test_site/media_page.html +2 -2
  46. metadata +18 -12
  47. data/features/basic_test_page_css.feature +0 -35
  48. data/features/basic_test_page_xpath.feature +0 -27
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 58ddfdbcb8747347fcb06efdd2a888509fa904bd5541a0f3d4d303af6469552c
4
- data.tar.gz: 14f9af8661d7e571d10f79e3d093cafa4e744388d5c1d6f9232e207fe5e82d6f
3
+ metadata.gz: ec1cf64d0d0e52b5d49ce5980dc049add4befecbc830650c4c908db5b2e07ac2
4
+ data.tar.gz: 841d00666f64914cf72d0f279e060c5ba31c1eb8a056020015a1430daf9c38a6
5
5
  SHA512:
6
- metadata.gz: 768e113468d0dfc68f01467bc4304f41903bff09f59db9f2c8dd013545c061523c7e0947669d1befadcf43b1187e57df3cb188d803b3d802d905c0c3467ce852
7
- data.tar.gz: 3133dc1f23ff3a839c45e2c6424d152f6c85916497c00dd9a815113f2acb8225f45efab91ce9d7cb4ada454d33115649ad61f4073f109a7dec44e40891971043
6
+ metadata.gz: 1e4e6f516c68a18689ccecfa7ee52ca97db9ffb8641c63d21641061e70ca4ac0f1b53d5191b02c6335ac1403e6bdf8afe0b0133d1204f2b87d4496d00a4c4fc1
7
+ data.tar.gz: c38230893848b6145e79e131f9e6a99867fa0a1d590d2b272a00709ee107b9a8044180c037cd1182cd6aa13d58c208e3ce154c2de08b66161a7c06ce02e0a8bc
data/.simplecov CHANGED
@@ -2,4 +2,8 @@
2
2
 
3
3
  require 'simplecov'
4
4
 
5
- SimpleCov.start
5
+ SimpleCov.start do
6
+ add_filter '/features/'
7
+ add_filter '/spec/'
8
+ merge_timeout 3600
9
+ end
data/CHANGELOG.md CHANGED
@@ -2,12 +2,23 @@
2
2
  All notable changes to this project will be documented in this file.
3
3
 
4
4
 
5
+ ## [4.1.8] - 31-MAR-2022
6
+
7
+ ### Fixed
8
+ * `Image.loaded?` now correctly returns a `Boolean` value instead of a `String`.
9
+ * `Video.video_height` and `Video.video_width` now correctly returns an `Integer` value instead of a `String`.
10
+ * `UIElement.scroll_to` now works for all supported browsers.
11
+
12
+ ### Changed
13
+ * `UIElement.crossorigin` is no longer limited to `Audio` and `Video` objects.
14
+
15
+
5
16
  ## [4.1.7] - 28-MAR-2022
6
17
 
7
18
  ### Fixed
8
19
  * `CheckBox.set_checkbox_state` and `Radio.set_selected_state` work on iOS simulators again.
9
20
 
10
- ### Changes
21
+ ### Changed
11
22
  * `Audio.playback_rate` and `Video.playback_rate` now return value as a `Float` instead of a `String`.
12
23
  * `Audio.default_playback_rate` and `Video.default_playback_rate` now return value as a `Float` instead of a `String`.
13
24
  * `Audio.current_time` and `Video.current_time` now return value as a `Float` rounded to two decimal places.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- testcentricity_web (4.1.7)
4
+ testcentricity_web (4.1.8)
5
5
  appium_lib
6
6
  browserstack-local
7
7
  capybara (>= 3.1, < 4)
data/README.md CHANGED
@@ -505,6 +505,7 @@ With TestCentricity, all UI elements are based on the `UIElement` class, and inh
505
505
  element.focused?
506
506
  element.required?
507
507
  element.content_editable?
508
+ element.crossorigin
508
509
  element.get_value
509
510
  element.count
510
511
  element.style
@@ -629,6 +630,7 @@ The `verify_ui_states` method supports the following property/state pairs:
629
630
  :visible Boolean
630
631
  :hidden Boolean
631
632
  :displayed Boolean
633
+ :obscured Boolean
632
634
  :width Integer
633
635
  :height Integer
634
636
  :x Integer
@@ -639,6 +641,7 @@ The `verify_ui_states` method supports the following property/state pairs:
639
641
  :style String
640
642
  :tabindex Integer
641
643
  :required Boolean
644
+ :crossorigin String
642
645
 
643
646
  **Pages:**
644
647
 
@@ -715,7 +718,6 @@ The `verify_ui_states` method supports the following property/state pairs:
715
718
  :playback_rate Float
716
719
  :ready_state Integer
717
720
  :volume Float
718
- :crossorigin String
719
721
  :preload String
720
722
  :poster String
721
723
 
data/Rakefile CHANGED
@@ -49,12 +49,38 @@ namespace :features do
49
49
  t.profile = 'ios_remote'
50
50
  end
51
51
 
52
+ Cucumber::Rake::Task.new(:emulated_mobile) do |t|
53
+ t.profile = 'ipad_pro_12_local'
54
+ end
55
+
52
56
 
53
- task :required => [:edge_local, :edge_headless, :chrome_local, :chrome_headless, :safari_local]
57
+ task :required => [
58
+ :edge_local,
59
+ :edge_headless,
60
+ :chrome_local,
61
+ :chrome_headless,
62
+ :firefox_local,
63
+ :firefox_headless,
64
+ :safari_local,
65
+ :emulated_mobile,
66
+ ]
54
67
 
55
- task :grid => [:edge_grid, :chrome_grid]
68
+ task :grid => [:edge_grid, :chrome_grid, :firefox_grid]
56
69
 
57
70
  task :mobile => [:ios_remote]
58
71
 
59
- task :all => [:edge_local, :edge_headless, :chrome_local, :chrome_headless, :safari_local, :edge_grid, :chrome_grid, :ios_remote]
72
+ task :all => [
73
+ :edge_local,
74
+ :edge_headless,
75
+ :chrome_local,
76
+ :chrome_headless,
77
+ :firefox_local,
78
+ :firefox_headless,
79
+ :safari_local,
80
+ :edge_grid,
81
+ :chrome_grid,
82
+ :firefox_grid,
83
+ :emulated_mobile,
84
+ :ios_remote
85
+ ]
60
86
  end
data/config/cucumber.yml CHANGED
@@ -1,6 +1,5 @@
1
1
  <% desktop = "--require features BROWSER_TILE=true BROWSER_SIZE=1300,1000 --publish-quiet" %>
2
- <% tablet = "--tags @desktop --require features BROWSER_TILE=true --publish-quiet" %>
3
- <% mobile = "--tags @mobile --require features BROWSER_TILE=true --publish-quiet" %>
2
+ <% mobile = "--require features BROWSER_TILE=true --publish-quiet" %>
4
3
  <% reports = "--require features --format pretty --format html --out reports/test_results.html --format junit --out reports --format json --out reports/test_results.json" %>
5
4
 
6
5
 
@@ -58,6 +57,14 @@ landscape: ORIENTATION=landscape
58
57
  portrait: ORIENTATION=portrait
59
58
 
60
59
 
60
+ #==============
61
+ # profiles for locally hosted mobile web browsers (emulated locally in Chrome browser)
62
+ #==============
63
+
64
+ ipad_pro_11_local: --profile local WEB_BROWSER=ipad_pro_11 HOST_BROWSER=chrome --profile portrait <%= mobile %>
65
+ ipad_pro_12_local: --profile local WEB_BROWSER=ipad_pro_12_9 HOST_BROWSER=chrome --profile portrait <%= mobile %>
66
+
67
+
61
68
  #==============
62
69
  # profile to start Appium Server prior to running mobile browser tests on iOS or Android simulators or physical devices
63
70
  #==============
@@ -69,7 +76,7 @@ run_appium: APPIUM_SERVER=run
69
76
  # NOTE: Requires installation of XCode, iOS version specific target simulators, Appium, and the appium_capybara gem
70
77
  #==============
71
78
 
72
- appium_ios: WEB_BROWSER=appium AUTOMATION_ENGINE=XCUITest APP_PLATFORM_NAME="ios" APP_BROWSER="Safari" NEW_COMMAND_TIMEOUT=30 SHOW_SIM_KEYBOARD=false <%= desktop %>
79
+ appium_ios: WEB_BROWSER=appium AUTOMATION_ENGINE=XCUITest APP_PLATFORM_NAME="ios" APP_BROWSER="Safari" NEW_COMMAND_TIMEOUT=30 SHOW_SIM_KEYBOARD=false <%= mobile %>
73
80
  app_ios_15: --profile appium_ios APP_VERSION="15.4"
74
81
 
75
82
  ipad_pro_12_15_sim: --profile app_ios_15 DEVICE_TYPE=tablet APP_DEVICE="iPad Pro (12.9-inch) (5th generation)"
@@ -83,7 +90,7 @@ ios_remote: --profile ipad_pro_12_15_sim --profile run_appium ORIENTATION=portra
83
90
  # NOTE: Requires installation of Android Studio, Android version specific virtual device simulators, Appium, and the appium_capybara gem
84
91
  #==============
85
92
 
86
- appium_android: WEB_BROWSER=appium APP_PLATFORM_NAME="Android" <%= desktop %>
93
+ appium_android: WEB_BROWSER=appium APP_PLATFORM_NAME="Android" <%= mobile %>
87
94
  app_android_12: --profile appium_android APP_BROWSER="Chrome" APP_VERSION="12.0"
88
95
  pixel_c_api31_sim: --profile app_android_12 DEVICE_TYPE=tablet APP_DEVICE="Pixel_C_API_31"
89
96
 
@@ -0,0 +1,15 @@
1
+ {
2
+ "Form_data": {
3
+ "primary": {
4
+ "username": "Thaddeus Eumbwebwe",
5
+ "password": "Pa55w0rd",
6
+ "image_filename": "Granny.jpg",
7
+ "multi_select": "Selection Item 3",
8
+ "drop_down_item": "Drop Down Item 3",
9
+ "check1": false,
10
+ "check2": true,
11
+ "check3": true,
12
+ "radio_select": 1
13
+ }
14
+ }
15
+ }
Binary file
@@ -0,0 +1,11 @@
1
+ Form_data:
2
+ primary:
3
+ username: "Ignatius von Snicklefritz"
4
+ password: "T0p_Sekrit"
5
+ image_filename: "Wilder.jpg"
6
+ multi_select: "Selection Item 2"
7
+ drop_down_item: "Drop Down Item 5"
8
+ check1: true
9
+ check2: true
10
+ check3: false
11
+ radio_select: 2
@@ -8,5 +8,18 @@
8
8
  "PROTOCOL": "http",
9
9
  "BASE_URL": "192.168.1.129/test_site"
10
10
  }
11
+ },
12
+ "Form_data": {
13
+ "primary": {
14
+ "username": "Thaddeus Eumbwebwe",
15
+ "password": "Pa55w0rd",
16
+ "image_filename": "Granny.jpg",
17
+ "multi_select": "Selection Item 3",
18
+ "drop_down_item": "Drop Down Item 3",
19
+ "check1": false,
20
+ "check2": true,
21
+ "check3": true,
22
+ "radio_select": 1
23
+ }
11
24
  }
12
25
  }
@@ -1,7 +1,3 @@
1
- # -------------------------------------------------------------
2
- # This is the generic test data required to run the UAL Flight Booking test suites against the QA and PROD test environments.
3
- # -------------------------------------------------------------
4
-
5
1
  # This section is populated with Environment data required to execute automated test suites on all supported environments
6
2
  Environments:
7
3
  LOCAL:
@@ -10,3 +6,15 @@ Environments:
10
6
  REMOTE:
11
7
  PROTOCOL: "http"
12
8
  BASE_URL: "192.168.1.129/test_site"
9
+
10
+ Form_data:
11
+ primary:
12
+ username: "Xavier Snicklefritz"
13
+ password: "Pa55W0rd"
14
+ image_filename: "Wilder.jpg"
15
+ multi_select: "Selection Item 1"
16
+ drop_down_item: "Drop Down Item 2"
17
+ check1: true
18
+ check2: true
19
+ check3: true
20
+ radio_select: 3
@@ -0,0 +1,39 @@
1
+ Feature: Basic HTML Form Test Page using CSS locators
2
+ In order to ensure comprehensive support for HTML UI elements and forms
3
+ As a developer of the TestCentricity web gem
4
+ I expect to validate the interaction and verification capabilities of typical HTML form UI elements
5
+
6
+
7
+ Background:
8
+ Given I am on the Basic CSS Form page
9
+
10
+
11
+ Scenario: Validate verify_ui_states method and associated object state verification methods
12
+ Then I expect the Basic CSS Form page to be correctly displayed
13
+
14
+
15
+ @!mobile @!firefox_headless
16
+ Scenario: Validate verify_focus_order method
17
+ Then I expect the tab order to be correct
18
+
19
+
20
+ Scenario: Validate populate_data_fields method and associated object action methods
21
+ When I populate the form fields
22
+ Then I expect the form fields to be correctly populated
23
+ When I cancel my changes
24
+ Then I expect the Basic CSS Form page to be correctly displayed
25
+
26
+
27
+ Scenario Outline: Verify functionality of navigation tabs and browser back/forward
28
+ When I click the <target_page> navigation tab
29
+ Then I expect the <target_page> page to be correctly displayed
30
+ When I navigate back
31
+ Then I should be on the Basic CSS Form page
32
+ When I navigate forward
33
+ Then I should be on the <target_page> page
34
+
35
+ Examples:
36
+ |target_page |
37
+ |Media Test |
38
+ |Indexed Sections |
39
+ |Custom Controls |
@@ -0,0 +1,26 @@
1
+ @!grid @!mobile @!headless
2
+
3
+
4
+ Feature: Basic HTML Form Test Page using Xpath locators
5
+ In order to ensure comprehensive support for HTML UI elements and forms
6
+ As a developer of the TestCentricity web gem
7
+ I expect to validate the interaction and verification capabilities of typical HTML form UI elements
8
+
9
+
10
+ Background:
11
+ Given I am on the Basic Xpath Form page
12
+
13
+
14
+ Scenario: Validate verify_ui_states method and associated object state verification methods
15
+ Then I expect the Basic Xpath Form page to be correctly displayed
16
+
17
+
18
+ Scenario: Validate verify_focus_order method
19
+ Then I expect the tab order to be correct
20
+
21
+
22
+ Scenario: Validate populate_data_fields method and associated object action methods
23
+ When I populate the form fields
24
+ Then I expect the form fields to be correctly populated
25
+ When I cancel my changes
26
+ Then I expect the Basic Xpath Form page to be correctly displayed
@@ -1,10 +1,7 @@
1
-
2
-
3
-
4
- Feature: Basic HTML Test Page using CSS locators
5
- In order to xxx
6
- As a xxxx
7
- I expect to xxxx
1
+ Feature: HTML5 Audio/Video Test Page using CSS locators
2
+ In order to ensure comprehensive support for HTML5 Audio and Video media elements
3
+ As a developer of the TestCentricity web gem
4
+ I expect to validate the interaction and verification capabilities of media UI elements
8
5
 
9
6
 
10
7
  Background:
@@ -42,3 +42,68 @@ When(/^I click the (.*) navigation (?:tab|link)$/) do |page_name|
42
42
  target_page = PageManager.find_page(page_name)
43
43
  target_page.navigate_to
44
44
  end
45
+
46
+
47
+ Then(/^I should (?:see|be on) the (.*) page$/) do |page_name|
48
+ # find and verify that the specified target page is loaded
49
+ target_page = PageManager.find_page(page_name)
50
+ target_page.verify_page_exists
51
+ end
52
+
53
+
54
+ Then(/^I expect the (.*) page to be correctly displayed in a new browser tab$/) do |page_name|
55
+ Browsers.switch_to_new_browser_instance
56
+ Environ.set_external_page(true)
57
+ TestCentricity::WebDriverConnect.initialize_browser_size if Environ.headless
58
+ # find and verify that the specified target page is loaded
59
+ target_page = PageManager.find_page(page_name)
60
+ target_page.verify_page_exists
61
+ # verify that target page is correctly displayed
62
+ target_page.verify_page_ui
63
+ end
64
+
65
+
66
+ When(/^I (?:access|switch to) the new browser tab$/) do
67
+ Browsers.switch_to_new_browser_instance
68
+ end
69
+
70
+
71
+ When(/^I close the current browser window$/) do
72
+ Browsers.close_current_browser_window
73
+ # intercept and accept any JavaScript system or browser modals that may appear
74
+ begin
75
+ page.driver.browser.switch_to.alert.accept
76
+ switch_to_new_browser_instance
77
+ rescue
78
+ end
79
+ end
80
+
81
+
82
+ When(/^I close the previous browser window$/) do
83
+ Browsers.close_old_browser_instance
84
+ end
85
+
86
+
87
+ When(/^I refresh the current page$/) do
88
+ Browsers.refresh_browser unless Environ.driver == :appium
89
+ end
90
+
91
+
92
+ When(/^I navigate back$/) do
93
+ Browsers.navigate_back
94
+ end
95
+
96
+
97
+ When(/^I navigate forward$/) do
98
+ Browsers.navigate_forward
99
+ end
100
+
101
+
102
+ When(/^I delete all cookies$/) do
103
+ Browsers.delete_all_cookies
104
+ end
105
+
106
+
107
+ When(/^I set device orientation to (.*)$/) do |orientation|
108
+ Browsers.set_device_orientation(orientation.downcase.to_sym)
109
+ end
@@ -0,0 +1,43 @@
1
+ class FormDataSource < TestCentricity::ExcelDataSource
2
+ def read_form_data
3
+ form_data = case ENV['DATA_SOURCE'].downcase.to_sym
4
+ when :excel
5
+ read_excel_row_data('Form_data', 'primary')
6
+ when :yaml, :json
7
+ environs.read('Form_data', 'primary')
8
+ else
9
+ raise "#{ENV['DATA_SOURCE']} is not a valid data source"
10
+ end
11
+ FormData.current = FormData.new(form_data)
12
+ end
13
+
14
+ def map_form_data(form_data)
15
+ FormData.current = FormData.new(form_data)
16
+ end
17
+ end
18
+
19
+
20
+ class FormData < TestCentricity::DataPresenter
21
+ attribute :username, String
22
+ attribute :password, String
23
+ attribute :image_filename, String
24
+ attribute :multi_select, String
25
+ attribute :drop_down_item, String
26
+ attribute :check1, Boolean, default: false
27
+ attribute :check2, Boolean, default: false
28
+ attribute :check3, Boolean, default: false
29
+ attribute :radio_select, Integer
30
+
31
+ def initialize(data)
32
+ @username = data[:username]
33
+ @password = data[:password]
34
+ @image_filename = data[:image_filename]
35
+ @multi_select = data[:multi_select]
36
+ @drop_down_item = data[:drop_down_item]
37
+ @check1 = data[:check1]
38
+ @check2 = data[:check2]
39
+ @check3 = data[:check3]
40
+ @radio_select = data[:radio_select]
41
+ super
42
+ end
43
+ end
@@ -9,10 +9,10 @@ include TestCentricity
9
9
 
10
10
  SimpleCov.command_name("features-#{ENV['WEB_BROWSER']}-#{ENV['SELENIUM']}" + (ENV['TEST_ENV_NUMBER'] || ''))
11
11
 
12
- # require_relative 'world_data'
12
+ require_relative 'world_data'
13
13
  require_relative 'world_pages'
14
14
 
15
- # require_rel 'data'
15
+ require_rel 'data'
16
16
  require_rel 'sections'
17
17
  require_rel 'pages'
18
18
 
@@ -32,7 +32,7 @@ Faker::Config.locale = ENV['LOCALE']
32
32
  include WorldData
33
33
  ENV['DATA_SOURCE'] = 'yaml' unless ENV['DATA_SOURCE']
34
34
  environs.find_environ(ENV['TEST_ENVIRONMENT'], ENV['DATA_SOURCE'].downcase.to_sym)
35
- # WorldData.instantiate_data_objects
35
+ WorldData.instantiate_data_objects
36
36
 
37
37
  # instantiate all page objects
38
38
  include WorldPages
@@ -182,7 +182,27 @@ end
182
182
 
183
183
  Around('@!mobile') do |scenario, block|
184
184
  if Environ.platform == :mobile
185
- log "Scenario '#{scenario.name}' can not be executed on mobile devices or simulators."
185
+ log "Scenario '#{scenario.name}' is not executed on mobile devices or simulators."
186
+ skip_this_scenario
187
+ else
188
+ block.call
189
+ end
190
+ end
191
+
192
+
193
+ Around('@!headless') do |scenario, block|
194
+ if Environ.headless
195
+ log "Scenario '#{scenario.name}' is not executed on headless browsers."
196
+ skip_this_scenario
197
+ else
198
+ block.call
199
+ end
200
+ end
201
+
202
+
203
+ Around('@!firefox_headless') do |scenario, block|
204
+ if Environ.browser == :firefox_headless
205
+ log "Scenario '#{scenario.name}' can not be executed on headless Firefox browsers."
186
206
  skip_this_scenario
187
207
  else
188
208
  block.call
@@ -8,4 +8,15 @@ class BaseTestPage < TestCentricity::PageObject
8
8
  def navigate_to
9
9
  navigator
10
10
  end
11
+
12
+ def verify_page_ui
13
+ # verify page title and header
14
+ ui = {
15
+ self => { exists: true, secure: false, title: page_title },
16
+ header_label => { visible: true, caption: page_title }
17
+ }
18
+ verify_ui_states(ui)
19
+ # verify header navigation bar
20
+ header_nav.verify_nav_bar
21
+ end
11
22
  end
@@ -1,7 +1,7 @@
1
- # Page Object class definition for Basic HTML Test page with CSS locators
1
+ # Page Object class definition for Basic HTML Form page with CSS locators
2
2
 
3
- class BasicCSSTestPage < BasicTestPage
4
- trait(:page_name) { 'Basic CSS Test' }
3
+ class BasicCSSFormPage < BasicFormPage
4
+ trait(:page_name) { 'Basic CSS Form' }
5
5
  trait(:page_locator) { 'form#HTMLFormElements' }
6
6
 
7
7
  # Basic HTML Test page UI elements