ruby_raider 0.2.2 → 0.2.5

Sign up to get free protection for your applications and to get access to all the features.
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