ruby_raider 0.2.2 → 0.2.5

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.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +8 -1
  3. data/bin/raider +1 -1
  4. data/lib/generators/automation_generator.rb +26 -28
  5. data/lib/generators/common_generator.rb +25 -26
  6. data/lib/generators/cucumber_generator.rb +10 -11
  7. data/lib/generators/generator.rb +8 -9
  8. data/lib/generators/helper_generator.rb +21 -31
  9. data/lib/generators/menu_generator.rb +50 -52
  10. data/lib/generators/rspec_generator.rb +7 -8
  11. data/lib/generators/templates/automation/abstract_page.tt +4 -6
  12. data/lib/generators/templates/automation/appium_settings.tt +1 -1
  13. data/lib/generators/templates/automation/confirmation_page.tt +2 -2
  14. data/lib/generators/templates/automation/home_page.tt +2 -2
  15. data/lib/generators/templates/automation/login_page.tt +4 -4
  16. data/lib/generators/templates/automation/partials/appium_login.tt +3 -3
  17. data/lib/generators/templates/automation/partials/element.tt +5 -5
  18. data/lib/generators/templates/automation/partials/initialize_selector.tt +9 -0
  19. data/lib/generators/templates/automation/partials/selenium_login.tt +4 -4
  20. data/lib/generators/templates/automation/partials/visit_method.tt +1 -5
  21. data/lib/generators/templates/automation/partials/watir_login.tt +7 -9
  22. data/lib/generators/templates/common/gemfile.tt +7 -6
  23. data/lib/generators/templates/cucumber/env.tt +4 -4
  24. data/lib/generators/templates/cucumber/partials/appium_env.tt +4 -4
  25. data/lib/generators/templates/cucumber/partials/mobile_steps.tt +6 -3
  26. data/lib/generators/templates/cucumber/partials/selenium_appium_env.tt +3 -5
  27. data/lib/generators/templates/cucumber/partials/watir_env.tt +3 -4
  28. data/lib/generators/templates/cucumber/partials/web_steps.tt +4 -3
  29. data/lib/generators/templates/cucumber/steps.tt +3 -3
  30. data/lib/generators/templates/helpers/allure_helper.tt +1 -1
  31. data/lib/generators/templates/helpers/driver_helper.tt +3 -3
  32. data/lib/generators/templates/helpers/partials/require_automation.tt +0 -2
  33. data/lib/generators/templates/helpers/partials/screenshot.tt +3 -3
  34. data/lib/generators/templates/helpers/partials/select_driver.tt +8 -0
  35. data/lib/generators/templates/helpers/raider_helper.tt +5 -6
  36. data/lib/generators/templates/helpers/spec_helper.tt +4 -11
  37. data/lib/generators/templates/rspec/spec.tt +34 -18
  38. data/lib/ruby_raider.rb +37 -8
  39. data/lib/scaffolding/scaffolding.rb +23 -0
  40. data/lib/scaffolding/templates/feature.tt +6 -0
  41. data/lib/scaffolding/templates/page_object.tt +12 -0
  42. data/lib/scaffolding/templates/spec.tt +5 -0
  43. data/lib/utilities/utilities.rb +17 -0
  44. data/ruby_raider.gemspec +2 -2
  45. data/spec/cucumber_generator_spec.rb +8 -0
  46. data/spec/helpers_generator_spec.rb +8 -16
  47. metadata +10 -8
  48. data/lib/generators/templates/automation/partials/driver_selector.tt +0 -9
  49. data/lib/generators/templates/helpers/partials/driver_requirements.tt +0 -14
  50. data/lib/generators/templates/helpers/pom_helper.tt +0 -19
  51. data/lib/generators/templates/helpers/watir_helper.tt +0 -16
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 326283d82054b2012338d66b696bc45ba57f428d4b2d3b97a61455443951bace
4
- data.tar.gz: 03b4342916436c32bb4465829712e079d4a872e3a053bc1f99defb6d89032b17
3
+ metadata.gz: 7988213b2be1daa32759ff975e5dca3ffd00705745ea9e0f78fdfb1f0148cbc8
4
+ data.tar.gz: 59324df2b000cfe2687b4ed02bd005577236aa36d2ac8069d52c87f4d5d5a4b1
5
5
  SHA512:
6
- metadata.gz: e4af2dcc99111102fe313e5d8200ea5b3cac6f28844fb1476fa2138614950641d5cd205506596c9d0d5d2e1fc77d1d7251ee2bd6b8965628e26f9ca612109bf6
7
- data.tar.gz: 59fee3bf19df164835d304d69c3f3c32c82d47192d6bbc6765979b273fa5fb91a49c46989a2c1b34340550b4bc35509247e338f3a610fb9468e29130e68be24a
6
+ metadata.gz: a9c95ba5afce93e67e7f7f563d96228ec34d3f91b093e6eb7168c1c56a421ab887c2aa1df4e29da89ea17a18ad9e72857b17c535762b9a519e459bc205393151
7
+ data.tar.gz: 58ce8f269ef6972486473f3b710ad0060d3b40144d6874b3fadc6a4420a4f9f54d7b43ce996a542e3ea0ec28ea83edf333ba14e445f276c2ea59a08bf4ce0cf5
data/Rakefile CHANGED
@@ -4,5 +4,12 @@ require_relative 'lib/ruby_raider'
4
4
 
5
5
  desc 'Create a new test projects'
6
6
  task :new, [:name] do |_t, args|
7
- RubyRaider.generate_project(args.name)
7
+ RubyRaider.start
8
+ RubyRaider.new(args.name)
8
9
  end
10
+
11
+ desc 'Create a page'
12
+ task :page, [:name] do |_t, args|
13
+ RubyRaider.start
14
+ RubyRaider.page(args.page)
15
+ end
data/bin/raider CHANGED
@@ -3,4 +3,4 @@
3
3
 
4
4
  require_relative '../lib/ruby_raider'
5
5
 
6
- RubyRaider.generate_project ARGV[0]
6
+ RubyRaider.start
@@ -2,44 +2,42 @@
2
2
 
3
3
  require_relative 'generator'
4
4
 
5
- module RubyRaider
6
- class AutomationGenerator < Generator
7
- def generate_login_page
8
- template('automation/login_page.tt', "#{name}/page_objects/pages/login_page.rb")
9
- end
5
+ class AutomationGenerator < Generator
6
+ def generate_login_page
7
+ template('automation/login_page.tt', "#{name}/page_objects/pages/login_page.rb")
8
+ end
10
9
 
11
- def generate_abstract_page
12
- template('automation/abstract_page.tt', "#{name}/page_objects/abstract/abstract_page.rb")
13
- end
10
+ def generate_abstract_page
11
+ template('automation/abstract_page.tt', "#{name}/page_objects/abstract/abstract_page.rb")
12
+ end
14
13
 
15
- def generate_home_page
16
- if @_initializer.first.include?('appium_ios')
17
- template('automation/home_page.tt', "#{name}/page_objects/pages/home_page.rb")
18
- end
14
+ def generate_home_page
15
+ if @_initializer.first.include?('appium_ios')
16
+ template('automation/home_page.tt', "#{name}/page_objects/pages/home_page.rb")
19
17
  end
18
+ end
20
19
 
21
- def generate_header_component
22
- unless @_initializer.first.include?('appium_ios')
23
- template('automation/component.tt', "#{name}/page_objects/components/header_component.rb")
24
- end
20
+ def generate_header_component
21
+ unless @_initializer.first.include?('appium_ios')
22
+ template('automation/component.tt', "#{name}/page_objects/components/header_component.rb")
25
23
  end
24
+ end
26
25
 
27
- def generate_abstract_component
28
- unless @_initializer.first.include?('appium_ios')
29
- template('automation/abstract_component.tt', "#{name}/page_objects/abstract/abstract_component.rb")
30
- end
26
+ def generate_abstract_component
27
+ unless @_initializer.first.include?('appium_ios')
28
+ template('automation/abstract_component.tt', "#{name}/page_objects/abstract/abstract_component.rb")
31
29
  end
30
+ end
32
31
 
33
- def generate_confirmation_page
34
- if @_initializer.first.include?('appium_ios')
35
- template('automation/confirmation_page.tt', "#{name}/page_objects/pages/confirmation_page.rb")
36
- end
32
+ def generate_confirmation_page
33
+ if @_initializer.first.include?('appium_ios')
34
+ template('automation/confirmation_page.tt', "#{name}/page_objects/pages/confirmation_page.rb")
37
35
  end
36
+ end
38
37
 
39
- def generate_appium_settings
40
- if @_initializer.first.include?('appium_ios')
41
- template('automation/appium_settings.tt', "#{name}/appium.txt")
42
- end
38
+ def generate_appium_settings
39
+ if @_initializer.first.include?('appium_ios')
40
+ template('automation/appium_settings.tt', "#{name}/appium.txt")
43
41
  end
44
42
  end
45
43
  end
@@ -2,30 +2,29 @@
2
2
 
3
3
  require_relative 'generator'
4
4
 
5
- module RubyRaider
6
- class CommonGenerator < Generator
7
- def generate_readme_file
8
- template('common/read_me.tt', "#{name}/Readme.md")
9
- end
10
-
11
- def generate_config_file
12
- template('common/config.tt', "#{name}/config/config.yml")
13
- end
14
-
15
- def generate_rake_file
16
- template('common/rakefile.tt', "#{name}/Rakefile")
17
- end
18
-
19
- def generate_gemfile
20
- template('common/gemfile.tt', "#{name}/Gemfile")
21
- end
22
-
23
- def create_allure_folder
24
- empty_directory "#{name}/allure-results"
25
- end
26
-
27
- def create_screenshots_folder
28
- empty_directory "#{name}/allure-results/screenshots"
29
- end
30
- end
5
+ class CommonGenerator < Generator
6
+ def generate_readme_file
7
+ template('common/read_me.tt', "#{name}/Readme.md")
8
+ end
9
+
10
+ def generate_config_file
11
+ template('common/config.tt', "#{name}/config/config.yml")
12
+ end
13
+
14
+ def generate_rake_file
15
+ template('common/rakefile.tt', "#{name}/Rakefile")
16
+ end
17
+
18
+ def generate_gemfile
19
+ template('common/gemfile.tt', "#{name}/Gemfile")
20
+ end
21
+
22
+ def create_allure_folder
23
+ empty_directory "#{name}/allure-results"
24
+ end
25
+
26
+ def create_screenshots_folder
27
+ empty_directory "#{name}/allure-results/screenshots"
28
+ end
31
29
  end
30
+
@@ -2,18 +2,17 @@
2
2
 
3
3
  require_relative 'generator'
4
4
 
5
- module RubyRaider
6
- class CucumberGenerator < Generator
7
- def generate_feature
8
- template('cucumber/feature.tt', "#{name}/features/login.feature")
9
- end
5
+ class CucumberGenerator < Generator
6
+ def generate_feature
7
+ template('cucumber/feature.tt', "#{name}/features/login.feature")
8
+ end
10
9
 
11
- def generate_steps
12
- template('cucumber/steps.tt', "#{name}/features/step_definitions/login_steps.rb")
13
- end
10
+ def generate_steps
11
+ template('cucumber/steps.tt', "#{name}/features/step_definitions/login_steps.rb")
12
+ end
14
13
 
15
- def generate_env_file
16
- template('cucumber/env.tt', "#{name}/features/support/env.rb")
17
- end
14
+ def generate_env_file
15
+ template('cucumber/env.tt', "#{name}/features/support/env.rb")
18
16
  end
19
17
  end
18
+
@@ -1,16 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
  require 'thor'
3
3
 
4
- module RubyRaider
5
- class Generator < Thor::Group
6
- include Thor::Actions
4
+ class Generator < Thor::Group
5
+ include Thor::Actions
7
6
 
8
- argument :automation
9
- argument :framework
10
- argument :name
7
+ argument :automation
8
+ argument :framework
9
+ argument :name
11
10
 
12
- def self.source_root
13
- File.dirname(__FILE__) + '/templates'
14
- end
11
+ def self.source_root
12
+ File.dirname(__FILE__) + '/templates'
15
13
  end
16
14
  end
15
+
@@ -2,47 +2,37 @@
2
2
 
3
3
  require_relative 'generator'
4
4
 
5
- module RubyRaider
6
- class HelpersGenerator < Generator
5
+ class HelpersGenerator < Generator
7
6
 
8
- def generate_raider_helper
9
- template('helpers/raider_helper.tt', "#{name}/helpers/raider.rb")
10
- end
11
-
12
- def generate_allure_helper
13
- template('helpers/allure_helper.tt', "#{name}/helpers/allure_helper.rb")
14
- end
7
+ def generate_raider_helper
8
+ template('helpers/raider_helper.tt', "#{name}/helpers/raider.rb")
9
+ end
15
10
 
16
- def generate_browser_helper
17
- if @_initializer.first.include?('watir')
18
- template('helpers/browser_helper.tt', "#{name}/helpers/browser_helper.rb")
19
- end
20
- end
11
+ def generate_allure_helper
12
+ template('helpers/allure_helper.tt', "#{name}/helpers/allure_helper.rb")
13
+ end
21
14
 
22
- def generate_pom_helper
23
- template('helpers/pom_helper.tt', "#{name}/helpers/pom_helper.rb")
15
+ def generate_browser_helper
16
+ if @_initializer.first.include?('watir')
17
+ template('helpers/browser_helper.tt', "#{name}/helpers/browser_helper.rb")
24
18
  end
19
+ end
25
20
 
26
- def generate_spec_helper
21
+ def generate_spec_helper
22
+ if @_initializer.first.include?('rspec')
27
23
  template('helpers/spec_helper.tt', "#{name}/helpers/spec_helper.rb")
28
24
  end
25
+ end
29
26
 
30
- def generate_watir_helper
31
- if @_initializer.first.include?('watir')
32
- template('helpers/watir_helper.tt', "#{name}/helpers/watir_helper.rb")
33
- end
34
- end
35
-
36
- def generate_selenium_helper
37
- if @_initializer.first.include?('selenium')
38
- template('helpers/selenium_helper.tt', "#{name}/helpers/selenium_helper.rb")
39
- end
27
+ def generate_selenium_helper
28
+ if @_initializer.first.include?('selenium')
29
+ template('helpers/selenium_helper.tt', "#{name}/helpers/selenium_helper.rb")
40
30
  end
31
+ end
41
32
 
42
- def generate_driver_helper
43
- unless @_initializer.first.include?('watir')
44
- template('helpers/driver_helper.tt', "#{name}/helpers/driver_helper.rb")
45
- end
33
+ def generate_driver_helper
34
+ unless @_initializer.first.include?('watir')
35
+ template('helpers/driver_helper.tt', "#{name}/helpers/driver_helper.rb")
46
36
  end
47
37
  end
48
38
  end
@@ -7,66 +7,64 @@ require_relative 'cucumber_generator'
7
7
  require_relative 'helper_generator'
8
8
  require_relative 'rspec_generator'
9
9
 
10
- module RubyRaider
11
- class MenuGenerator
12
- class << self
13
- def generate_choice_menu(project_name)
14
- @cli = HighLine.new
15
- @cli.choose do |menu|
16
- menu.prompt = 'Please select your automation framework'
17
- menu.choice('Selenium') { choose_test_framework('selenium', project_name) }
18
- menu.choice('Watir') { choose_test_framework('watir', project_name) }
19
- menu.choice('Appium') { choose_test_framework('appium', project_name) }
20
- menu.choice('Quit') { exit }
21
- end
10
+ class MenuGenerator
11
+ class << self
12
+ def generate_choice_menu(project_name)
13
+ @cli = HighLine.new
14
+ @cli.choose do |menu|
15
+ menu.prompt = 'Please select your automation framework'
16
+ menu.choice('Selenium') { choose_test_framework('selenium', project_name) }
17
+ menu.choice('Watir') { choose_test_framework('watir', project_name) }
18
+ menu.choice('Appium') { choose_test_framework('appium', project_name) }
19
+ menu.choice('Quit') { exit }
22
20
  end
21
+ end
23
22
 
24
- def choose_test_framework(automation, project_name)
25
- system('clear') || system('cls')
26
- sleep 0.3
27
- automation = automation == 'appium' ? choose_mobile_platform : automation
28
- framework = ''
29
- @cli.choose do |menu|
30
- menu.prompt = 'Please select your test framework'
31
- menu.choice('Rspec') do
32
- framework = 'rspec'
33
- set_framework(automation, framework, project_name)
34
- end
35
- menu.choice('Cucumber') do
36
- framework = 'cucumber'
37
- set_framework(automation, framework, project_name)
38
- end
39
- menu.choice('Quit') { exit }
23
+ def choose_test_framework(automation, project_name)
24
+ system('clear') || system('cls')
25
+ sleep 0.3
26
+ automation = automation == 'appium' ? choose_mobile_platform : automation
27
+ framework = ''
28
+ @cli.choose do |menu|
29
+ menu.prompt = 'Please select your test framework'
30
+ menu.choice('Rspec') do
31
+ framework = 'rspec'
32
+ set_framework(automation, framework, project_name)
40
33
  end
41
- @cli.say("You have chosen to use #{framework} with #{automation}")
34
+ menu.choice('Cucumber') do
35
+ framework = 'cucumber'
36
+ set_framework(automation, framework, project_name)
37
+ end
38
+ menu.choice('Quit') { exit }
42
39
  end
40
+ @cli.say("You have chosen to use #{framework} with #{automation}")
41
+ end
43
42
 
44
- def set_framework(automation, framework, project_name)
45
- if framework == 'rspec'
46
- RspecGenerator.new([automation, framework, project_name]).invoke_all
47
- else
48
- CucumberGenerator.new([automation, framework, project_name]).invoke_all
49
- end
50
- AutomationGenerator.new([automation, framework, project_name]).invoke_all
51
- CommonGenerator.new([automation, framework, project_name]).invoke_all
52
- HelpersGenerator.new([automation, framework, project_name]).invoke_all
53
- system "cd #{project_name} && gem install bundler && bundle install"
43
+ def set_framework(automation, framework, project_name)
44
+ if framework == 'rspec'
45
+ RspecGenerator.new([automation, framework, project_name]).invoke_all
46
+ else
47
+ CucumberGenerator.new([automation, framework, project_name]).invoke_all
54
48
  end
49
+ AutomationGenerator.new([automation, framework, project_name]).invoke_all
50
+ CommonGenerator.new([automation, framework, project_name]).invoke_all
51
+ HelpersGenerator.new([automation, framework, project_name]).invoke_all
52
+ system "cd #{project_name} && gem install bundler && bundle install"
53
+ end
55
54
 
56
- def choose_mobile_platform
57
- @cli.choose do |menu|
58
- menu.prompt = 'Please select your mobile platform'
59
- menu.choice('iOS') { 'appium_ios' }
60
- menu.choice('Android') do
61
- pp 'Android appium is coming soon. Thank you for the interest'
62
- exit
63
- end
64
- menu.choice('Cross Platform') do
65
- pp 'Cross platform appium is coming soon. Thank you for the interest'
66
- exit
67
- end
68
- menu.choice('Quit') { exit }
55
+ def choose_mobile_platform
56
+ @cli.choose do |menu|
57
+ menu.prompt = 'Please select your mobile platform'
58
+ menu.choice('iOS') { 'appium_ios' }
59
+ menu.choice('Android') do
60
+ pp 'Android appium is coming soon. Thank you for the interest'
61
+ exit
62
+ end
63
+ menu.choice('Cross Platform') do
64
+ pp 'Cross platform appium is coming soon. Thank you for the interest'
65
+ exit
69
66
  end
67
+ menu.choice('Quit') { exit }
70
68
  end
71
69
  end
72
70
  end
@@ -2,15 +2,14 @@
2
2
 
3
3
  require_relative 'generator'
4
4
 
5
- module RubyRaider
6
- class RspecGenerator < Generator
5
+ class RspecGenerator < Generator
7
6
 
8
- def generate_spec
9
- template('rspec/spec.tt', "#{name}/spec/login_page_spec.rb")
10
- end
7
+ def generate_spec
8
+ template('rspec/spec.tt', "#{name}/spec/login_page_spec.rb")
9
+ end
11
10
 
12
- def generate_base_spec
13
- template('rspec/base_spec.tt', "#{name}/spec/base_spec.rb")
14
- end
11
+ def generate_base_spec
12
+ template('rspec/base_spec.tt', "#{name}/spec/base_spec.rb")
15
13
  end
16
14
  end
15
+
@@ -1,10 +1,8 @@
1
1
  require 'rspec'
2
- <%= ERB.new(File.read(File.expand_path('./partials/require_raider.tt', __dir__))).result(binding) %>
2
+ <%= ERB.new(File.read(File.expand_path('./partials/require_raider.tt', __dir__)), nil, '-').result(binding) -%>
3
3
 
4
4
  class AbstractPage
5
- include RSpec::Matchers
6
- extend Raider::PomHelper
7
- <%= ERB.new(File.read(File.expand_path('./partials/driver_selector.tt', __dir__))).result(binding) %>
8
- <%= ERB.new(File.read(File.expand_path('./partials/visit_method.tt', __dir__))).result(binding) %>
9
- <%= ERB.new(File.read(File.expand_path('./partials/url_methods.tt', __dir__))).result(binding) %>
5
+ <%= ERB.new(File.read(File.expand_path('./partials/initialize_selector.tt', __dir__))).result(binding) -%>
6
+ <%= ERB.new(File.read(File.expand_path('./partials/visit_method.tt', __dir__))).result(binding) -%>
7
+ <%= ERB.new(File.read(File.expand_path('./partials/url_methods.tt', __dir__))).result(binding) -%>
10
8
  end
@@ -1,6 +1,6 @@
1
1
  [caps]
2
2
  platformName = "iOS"
3
- platformVersion = "15.4"
3
+ platformVersion = "15.5"
4
4
  deviceName = "iPhone SE (3rd generation)"
5
5
  app = "TheApp.app"
6
6
 
@@ -6,7 +6,7 @@ class ConfirmationPage < AbstractPage
6
6
  #Values
7
7
 
8
8
  def login_message
9
- driver.wait { message_element }.text
9
+ @driver.wait { message_element }.text
10
10
  end
11
11
 
12
12
  private
@@ -14,6 +14,6 @@ class ConfirmationPage < AbstractPage
14
14
  # Elements
15
15
 
16
16
  def message_element
17
- driver.find_element(accessibility_id: 'You are logged in as alice')
17
+ @driver.find_element(accessibility_id: 'You are logged in as alice')
18
18
  end
19
19
  end
@@ -7,7 +7,7 @@ class HomePage < AbstractPage
7
7
  #Actions
8
8
 
9
9
  def go_to_login
10
- driver.wait { login_button_navigator }.click
10
+ @driver.wait { login_button_navigator }.click
11
11
  end
12
12
 
13
13
  private
@@ -15,6 +15,6 @@ class HomePage < AbstractPage
15
15
  # Elements
16
16
 
17
17
  def login_button_navigator
18
- driver.find_element(accessibility_id: 'Login Screen')
18
+ @driver.find_element(accessibility_id: 'Login Screen')
19
19
  end
20
20
  end
@@ -1,8 +1,8 @@
1
1
  <% case automation
2
- when 'selenium' %>
2
+ when 'selenium' -%>
3
3
  <%= ERB.new(File.read(File.expand_path('./partials/selenium_login.tt', __dir__))).result(binding) %>
4
- <% when 'watir' %>
4
+ <% when 'watir' -%>
5
5
  <%= ERB.new(File.read(File.expand_path('./partials/watir_login.tt', __dir__))).result(binding) %>
6
- <% else %>
6
+ <% else -%>
7
7
  <%= ERB.new(File.read(File.expand_path('./partials/appium_login.tt', __dir__))).result(binding) %>
8
- <% end %>
8
+ <% end -%>
@@ -15,14 +15,14 @@ class LoginPage < AbstractPage
15
15
  # Elements
16
16
 
17
17
  def username_field
18
- driver.find_element(xpath: "//XCUIElementTypeTextField[@name=\"username\"]")
18
+ @driver.find_element(xpath: "//XCUIElementTypeTextField[@name=\"username\"]")
19
19
  end
20
20
 
21
21
  def password_field
22
- driver.find_element(xpath: "//XCUIElementTypeSecureTextField[@name=\"password\"]")
22
+ @driver.find_element(xpath: "//XCUIElementTypeSecureTextField[@name=\"password\"]")
23
23
  end
24
24
 
25
25
  def login_button
26
- driver.find_elements(xpath: "//XCUIElementTypeOther[@name=\"loginBtn\"]").last
26
+ @driver.find_elements(xpath: "//XCUIElementTypeOther[@name=\"loginBtn\"]").last
27
27
  end
28
28
  end
@@ -1,5 +1,5 @@
1
- <% if %w[selenium appium_ios].include?(automation) %>
2
- driver.find_element
3
- <% else %>
4
- browser.element
5
- <% end %>
1
+ <% if %w[selenium appium_ios].include?(automation) -%>
2
+ @driver.find_element
3
+ <% else -%>
4
+ @browser.element
5
+ <% end -%>
@@ -0,0 +1,9 @@
1
+ <% if automation == 'watir' %>
2
+ def initialize(browser)
3
+ @browser = browser
4
+ end
5
+ <% else %>
6
+ def initialize(driver)
7
+ @driver = driver
8
+ end
9
+ <% end %>
@@ -19,7 +19,7 @@ class LoginPage < AbstractPage
19
19
  # Components
20
20
 
21
21
  def header
22
- HeaderComponent.new(driver.find_element(class: 'menu_text'))
22
+ HeaderComponent.new(@driver.find_element(class: 'menu_text'))
23
23
  end
24
24
 
25
25
  private
@@ -27,14 +27,14 @@ class LoginPage < AbstractPage
27
27
  # Elements
28
28
 
29
29
  def username_field
30
- driver.find_element(id: 'loginFrm_loginname')
30
+ @driver.find_element(id: 'loginFrm_loginname')
31
31
  end
32
32
 
33
33
  def password_field
34
- driver.find_element(id: 'loginFrm_password')
34
+ @driver.find_element(id: 'loginFrm_password')
35
35
  end
36
36
 
37
37
  def login_button
38
- driver.find_element(xpath: "//button[@title='Login']")
38
+ @driver.find_element(xpath: "//button[@title='Login']")
39
39
  end
40
40
  end
@@ -1,9 +1,5 @@
1
1
  <% if %w[selenium watir].include? automation %>
2
2
  def visit(*page)
3
- <% if automation == 'selenium' %>
4
- driver.navigate.to full_url(page.first)
5
- <% else %>
6
- browser.goto full_url(page.first)
7
- <% end %>
3
+ <% if automation == 'selenium' %>@driver.navigate.to full_url(page.first) <% else %>@browser.goto full_url(page.first)<% end %>
8
4
  end
9
5
  <% end %>
@@ -2,7 +2,6 @@ require_relative '../abstract/abstract_page'
2
2
  require_relative '../components/header_component'
3
3
 
4
4
  class LoginPage < AbstractPage
5
- using Raider::WatirHelper
6
5
 
7
6
  def url(_page)
8
7
  'index.php?rt=account/login'
@@ -11,16 +10,15 @@ class LoginPage < AbstractPage
11
10
  # Actions
12
11
 
13
12
  def login(username, password)
14
- username_field.send_keys username
15
- password_field.send_keys password
16
- login_button.click_when_present
13
+ username_field.set username
14
+ password_field.set password
15
+ login_button.click
17
16
  end
18
17
 
19
18
  # Components
20
19
 
21
-
22
20
  def header
23
- HeaderComponent.new(browser.element(class: 'menu_text'))
21
+ HeaderComponent.new(@browser.element(class: 'menu_text'))
24
22
  end
25
23
 
26
24
  private
@@ -28,14 +26,14 @@ class LoginPage < AbstractPage
28
26
  # Elements
29
27
 
30
28
  def username_field
31
- browser.element(id: 'loginFrm_loginname')
29
+ @browser.text_field(id: 'loginFrm_loginname')
32
30
  end
33
31
 
34
32
  def password_field
35
- browser.element(id: 'loginFrm_password')
33
+ @browser.text_field(id: 'loginFrm_password')
36
34
  end
37
35
 
38
36
  def login_button
39
- browser.element(xpath: "//button[@title='Login']")
37
+ @browser.button(xpath: "//button[@title='Login']")
40
38
  end
41
39
  end