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.
- checksums.yaml +4 -4
- data/Rakefile +8 -1
- data/bin/raider +1 -1
- data/lib/generators/automation_generator.rb +26 -28
- data/lib/generators/common_generator.rb +25 -26
- data/lib/generators/cucumber_generator.rb +10 -11
- data/lib/generators/generator.rb +8 -9
- data/lib/generators/helper_generator.rb +21 -31
- data/lib/generators/menu_generator.rb +50 -52
- data/lib/generators/rspec_generator.rb +7 -8
- data/lib/generators/templates/automation/abstract_page.tt +4 -6
- data/lib/generators/templates/automation/appium_settings.tt +1 -1
- data/lib/generators/templates/automation/confirmation_page.tt +2 -2
- data/lib/generators/templates/automation/home_page.tt +2 -2
- data/lib/generators/templates/automation/login_page.tt +4 -4
- data/lib/generators/templates/automation/partials/appium_login.tt +3 -3
- data/lib/generators/templates/automation/partials/element.tt +5 -5
- data/lib/generators/templates/automation/partials/initialize_selector.tt +9 -0
- data/lib/generators/templates/automation/partials/selenium_login.tt +4 -4
- data/lib/generators/templates/automation/partials/visit_method.tt +1 -5
- data/lib/generators/templates/automation/partials/watir_login.tt +7 -9
- data/lib/generators/templates/common/gemfile.tt +7 -6
- data/lib/generators/templates/cucumber/env.tt +4 -4
- data/lib/generators/templates/cucumber/partials/appium_env.tt +4 -4
- data/lib/generators/templates/cucumber/partials/mobile_steps.tt +6 -3
- data/lib/generators/templates/cucumber/partials/selenium_appium_env.tt +3 -5
- data/lib/generators/templates/cucumber/partials/watir_env.tt +3 -4
- data/lib/generators/templates/cucumber/partials/web_steps.tt +4 -3
- data/lib/generators/templates/cucumber/steps.tt +3 -3
- data/lib/generators/templates/helpers/allure_helper.tt +1 -1
- data/lib/generators/templates/helpers/driver_helper.tt +3 -3
- data/lib/generators/templates/helpers/partials/require_automation.tt +0 -2
- data/lib/generators/templates/helpers/partials/screenshot.tt +3 -3
- data/lib/generators/templates/helpers/partials/select_driver.tt +8 -0
- data/lib/generators/templates/helpers/raider_helper.tt +5 -6
- data/lib/generators/templates/helpers/spec_helper.tt +4 -11
- data/lib/generators/templates/rspec/spec.tt +34 -18
- data/lib/ruby_raider.rb +37 -8
- data/lib/scaffolding/scaffolding.rb +23 -0
- data/lib/scaffolding/templates/feature.tt +6 -0
- data/lib/scaffolding/templates/page_object.tt +12 -0
- data/lib/scaffolding/templates/spec.tt +5 -0
- data/lib/utilities/utilities.rb +17 -0
- data/ruby_raider.gemspec +2 -2
- data/spec/cucumber_generator_spec.rb +8 -0
- data/spec/helpers_generator_spec.rb +8 -16
- metadata +10 -8
- data/lib/generators/templates/automation/partials/driver_selector.tt +0 -9
- data/lib/generators/templates/helpers/partials/driver_requirements.tt +0 -14
- data/lib/generators/templates/helpers/pom_helper.tt +0 -19
- 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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7988213b2be1daa32759ff975e5dca3ffd00705745ea9e0f78fdfb1f0148cbc8
|
4
|
+
data.tar.gz: 59324df2b000cfe2687b4ed02bd005577236aa36d2ac8069d52c87f4d5d5a4b1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
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
@@ -2,44 +2,42 @@
|
|
2
2
|
|
3
3
|
require_relative 'generator'
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
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
|
-
|
12
|
-
|
13
|
-
|
10
|
+
def generate_abstract_page
|
11
|
+
template('automation/abstract_page.tt', "#{name}/page_objects/abstract/abstract_page.rb")
|
12
|
+
end
|
14
13
|
|
15
|
-
|
16
|
-
|
17
|
-
|
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
|
-
|
22
|
-
|
23
|
-
|
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
|
-
|
28
|
-
|
29
|
-
|
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
|
-
|
34
|
-
|
35
|
-
|
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
|
-
|
40
|
-
|
41
|
-
|
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
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
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
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
end
|
5
|
+
class CucumberGenerator < Generator
|
6
|
+
def generate_feature
|
7
|
+
template('cucumber/feature.tt', "#{name}/features/login.feature")
|
8
|
+
end
|
10
9
|
|
11
|
-
|
12
|
-
|
13
|
-
|
10
|
+
def generate_steps
|
11
|
+
template('cucumber/steps.tt', "#{name}/features/step_definitions/login_steps.rb")
|
12
|
+
end
|
14
13
|
|
15
|
-
|
16
|
-
|
17
|
-
end
|
14
|
+
def generate_env_file
|
15
|
+
template('cucumber/env.tt', "#{name}/features/support/env.rb")
|
18
16
|
end
|
19
17
|
end
|
18
|
+
|
data/lib/generators/generator.rb
CHANGED
@@ -1,16 +1,15 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
require 'thor'
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
include Thor::Actions
|
4
|
+
class Generator < Thor::Group
|
5
|
+
include Thor::Actions
|
7
6
|
|
8
|
-
|
9
|
-
|
10
|
-
|
7
|
+
argument :automation
|
8
|
+
argument :framework
|
9
|
+
argument :name
|
11
10
|
|
12
|
-
|
13
|
-
|
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
|
-
|
6
|
-
class HelpersGenerator < Generator
|
5
|
+
class HelpersGenerator < Generator
|
7
6
|
|
8
|
-
|
9
|
-
|
10
|
-
|
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
|
-
|
17
|
-
|
18
|
-
|
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
|
-
|
23
|
-
|
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
|
-
|
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
|
-
|
31
|
-
|
32
|
-
|
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
|
-
|
43
|
-
|
44
|
-
|
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
|
-
|
11
|
-
class
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
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
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
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
|
-
|
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
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
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
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
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
|
-
|
6
|
-
class RspecGenerator < Generator
|
5
|
+
class RspecGenerator < Generator
|
7
6
|
|
8
|
-
|
9
|
-
|
10
|
-
|
7
|
+
def generate_spec
|
8
|
+
template('rspec/spec.tt', "#{name}/spec/login_page_spec.rb")
|
9
|
+
end
|
11
10
|
|
12
|
-
|
13
|
-
|
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
|
-
|
6
|
-
|
7
|
-
<%= ERB.new(File.read(File.expand_path('./partials/
|
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
|
@@ -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 -%>
|
@@ -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.
|
15
|
-
password_field.
|
16
|
-
login_button.
|
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.
|
29
|
+
@browser.text_field(id: 'loginFrm_loginname')
|
32
30
|
end
|
33
31
|
|
34
32
|
def password_field
|
35
|
-
browser.
|
33
|
+
@browser.text_field(id: 'loginFrm_password')
|
36
34
|
end
|
37
35
|
|
38
36
|
def login_button
|
39
|
-
browser.
|
37
|
+
@browser.button(xpath: "//button[@title='Login']")
|
40
38
|
end
|
41
39
|
end
|