taf 0.5.0 → 1.0.0
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/lib/taf.rb +1 -5
- data/lib/taf/browser.rb +19 -17
- data/lib/taf/screenshot.rb +1 -1
- data/lib/taf/test_steps.rb +1 -1
- data/lib/taf/test_steps/handlers/base.rb +7 -35
- data/lib/taf/test_steps/handlers/base/browser_back.rb +1 -1
- data/lib/taf/test_steps/handlers/base/browser_forward.rb +1 -1
- data/lib/taf/test_steps/handlers/base/browser_refresh.rb +1 -1
- data/lib/taf/test_steps/handlers/base/capture_alert.rb +2 -2
- data/lib/taf/test_steps/handlers/base/check_browser_title.rb +1 -1
- data/lib/taf/test_steps/handlers/base/check_logs.rb +2 -2
- data/lib/taf/test_steps/handlers/base/check_screendata.rb +1 -3
- data/lib/taf/test_steps/handlers/base/check_url.rb +1 -1
- data/lib/taf/test_steps/handlers/base/click_button.rb +11 -15
- data/lib/taf/test_steps/handlers/base/execute_system_command.rb +2 -2
- data/lib/taf/test_steps/handlers/base/generate_token.rb +2 -2
- data/lib/taf/test_steps/handlers/base/handle_browser_window.rb +10 -8
- data/lib/taf/test_steps/handlers/base/leave_iframe.rb +22 -0
- data/lib/taf/test_steps/handlers/base/login.rb +35 -29
- data/lib/taf/test_steps/handlers/base/open_url.rb +1 -1
- data/lib/taf/test_steps/handlers/base/radio_or_checkbox_button.rb +22 -0
- data/lib/taf/test_steps/handlers/base/select_dropdown.rb +3 -3
- data/lib/taf/test_steps/handlers/base/send_special_keys.rb +1 -1
- data/lib/taf/test_steps/handlers/base/switch_to_iframe.rb +21 -0
- data/lib/taf/test_steps/handlers/base/switch_to_original_tab_or_window.rb +23 -0
- data/lib/taf/test_steps/handlers/base/write_box_data.rb +2 -18
- data/lib/taf/version.rb +1 -1
- metadata +6 -20
- data/lib/taf/test_steps/handlers/base/check_box.rb +0 -22
- data/lib/taf/test_steps/handlers/base/check_boxdata.rb +0 -46
- data/lib/taf/test_steps/handlers/base/list_all_dropdowns_values.rb +0 -23
- data/lib/taf/test_steps/handlers/base/radio_button.rb +0 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3b23df94f306d0f67dc7c0c5baf2c707aabcde4a286b8dd811b33f123dfb329b
|
4
|
+
data.tar.gz: 433d583f64e1bf46b77f4e2954e78e11d13584e162d60ad539e12b9c79b57338
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dfe2d1437c34f7239047be0ba88435c72c6b62b8ac2c986d4943db8a1bdf994ff04b25ab88cce17e7667fed49b5f5b0c1318f55f49aaba6053d03778286db19b
|
7
|
+
data.tar.gz: c4bfaf18143ca30df636cff7787a4d74de344a2991cc805736ad67d617a13bacca7fce8716814d3c6a829641e398931675bacb01b9212b4c57105227a3f4f6fc
|
data/lib/taf.rb
CHANGED
@@ -19,7 +19,6 @@ module Taf
|
|
19
19
|
require 'securerandom'
|
20
20
|
require 'selenium-webdriver'
|
21
21
|
require 'time_difference'
|
22
|
-
require 'watir'
|
23
22
|
|
24
23
|
require 'taf/browser'
|
25
24
|
require 'taf/cmd_line'
|
@@ -42,10 +41,7 @@ module Taf
|
|
42
41
|
|
43
42
|
# Load all handlers.
|
44
43
|
Dir[File.expand_path('taf/test_steps/handlers/base/*.rb', __dir__)]
|
45
|
-
.each do |f|
|
44
|
+
.sort.each do |f|
|
46
45
|
require f
|
47
46
|
end
|
48
|
-
|
49
|
-
# Watir config. set wait:
|
50
|
-
Watir.default_timeout = 60
|
51
47
|
end
|
data/lib/taf/browser.rb
CHANGED
@@ -31,16 +31,17 @@ module Taf
|
|
31
31
|
def self.chrome
|
32
32
|
case @browser_name
|
33
33
|
when @chrome_name
|
34
|
-
|
35
|
-
|
36
|
-
|
34
|
+
options = Selenium::WebDriver::Chrome::Options.new
|
35
|
+
options.add_argument('--ignore-certificate-errors')
|
36
|
+
options.add_argument('--window-size=1920,1080')
|
37
37
|
when @chrome_headless_name
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
38
|
+
options = Selenium::WebDriver::Chrome::Options.new
|
39
|
+
options.add_argument('--headless')
|
40
|
+
options.add_argument('--ignore-certificate-errors')
|
41
|
+
options.add_argument('--window-size=1920,1080')
|
42
42
|
end
|
43
|
-
@browser =
|
43
|
+
@browser = Selenium::WebDriver.for :chrome, options: options
|
44
|
+
@browser.manage.timeouts.implicit_wait = 120
|
44
45
|
end
|
45
46
|
|
46
47
|
# firefox browser details
|
@@ -49,14 +50,14 @@ module Taf
|
|
49
50
|
caps['acceptInsecureCerts'] = true
|
50
51
|
case @browser_name
|
51
52
|
when @firefox_name
|
52
|
-
|
53
|
+
@browser = Selenium::WebDriver.for(:firefox, desired_capabilities: caps)
|
53
54
|
when @firefox_headless_name
|
54
55
|
options = Selenium::WebDriver::Firefox::Options.new(args: ['-headless'])
|
55
|
-
|
56
|
-
|
56
|
+
@browser = Selenium::WebDriver.for(:firefox, options: options,
|
57
|
+
desired_capabilities: caps)
|
57
58
|
end
|
58
|
-
@browser
|
59
|
-
@browser.
|
59
|
+
@browser.manage.window.maximize
|
60
|
+
@browser.manage.timeouts.implicit_wait = 120
|
60
61
|
end
|
61
62
|
|
62
63
|
# define browser value
|
@@ -68,7 +69,7 @@ module Taf
|
|
68
69
|
def self.browser_version
|
69
70
|
case @browser_name
|
70
71
|
when @chrome_name, @chrome_headless_name
|
71
|
-
@browser.
|
72
|
+
@browser.capabilities[:version]
|
72
73
|
when @firefox_name, @firefox_headless_name
|
73
74
|
@browser.execute_script('return navigator.userAgent;').split('/')[-1]
|
74
75
|
else
|
@@ -78,12 +79,13 @@ module Taf
|
|
78
79
|
|
79
80
|
# Check platform
|
80
81
|
def self.browser_platform
|
82
|
+
ptf = @browser.execute_script('return navigator.userAgent;').split(';')[1]
|
83
|
+
|
81
84
|
case @browser_name
|
82
85
|
when @chrome_name, @chrome_headless_name
|
83
|
-
|
84
|
-
.split(';')[1].split(')')[0]
|
86
|
+
ptf.split(')')[0]
|
85
87
|
when @firefox_name, @firefox_headless_name
|
86
|
-
|
88
|
+
ptf
|
87
89
|
else
|
88
90
|
'No Platform found'
|
89
91
|
end
|
data/lib/taf/screenshot.rb
CHANGED
@@ -18,7 +18,7 @@ module Taf
|
|
18
18
|
"_Test_step-#{test_step_idx}_Failed_#{time}.png"
|
19
19
|
|
20
20
|
# Screenshot capture for websites
|
21
|
-
Taf::Browser.b.
|
21
|
+
Taf::Browser.b.save_screenshot sc_file_name
|
22
22
|
Taf::MyLog.log.info("Screenshot saved to: #{sc_file_name} \n")
|
23
23
|
sc_file_name
|
24
24
|
rescue StandardError => e
|
data/lib/taf/test_steps.rb
CHANGED
@@ -21,11 +21,11 @@ module Taf
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def login_process(b_title, user_elm, pass_elm, user, pass)
|
24
|
-
if Taf::Browser.b.title.eql?
|
25
|
-
Taf::Browser.b.
|
26
|
-
|
27
|
-
Taf::Browser.b.
|
28
|
-
Taf::Browser.b.
|
24
|
+
if Taf::Browser.b.title.eql? b_title
|
25
|
+
Taf::Browser.b.find_element(id: user_elm).displayed?
|
26
|
+
Taf::Browser.b.find_element(id: user_elm).send_keys user
|
27
|
+
Taf::Browser.b.find_element(id: pass_elm).send_keys pass
|
28
|
+
Taf::Browser.b.find_element(name: 'commit').click
|
29
29
|
sleep 1
|
30
30
|
else
|
31
31
|
Taf::MyLog.log.warn("User: #{user} has failed to log in.")
|
@@ -33,7 +33,7 @@ module Taf
|
|
33
33
|
end
|
34
34
|
|
35
35
|
def url_check(url)
|
36
|
-
if Taf::Browser.b.
|
36
|
+
if Taf::Browser.b.current_url == url
|
37
37
|
Taf::MyLog.log.info("URL: #{url} is correct.")
|
38
38
|
true
|
39
39
|
else
|
@@ -43,7 +43,7 @@ module Taf
|
|
43
43
|
end
|
44
44
|
|
45
45
|
def login_check(b_title_success, user)
|
46
|
-
if Taf::Browser.b.title.eql?
|
46
|
+
if Taf::Browser.b.title.eql? b_title_success
|
47
47
|
Taf::MyLog.log.info("User: #{user} has logged in successful.")
|
48
48
|
true
|
49
49
|
else
|
@@ -51,34 +51,6 @@ module Taf
|
|
51
51
|
false
|
52
52
|
end
|
53
53
|
end
|
54
|
-
|
55
|
-
def portal_mem_word(user, b_title_success)
|
56
|
-
password = ENV['PORTAL_MEM']
|
57
|
-
nums = (1..256).to_a
|
58
|
-
found_mem_nums = nums.each_with_object([]) do |num_val, mem_word|
|
59
|
-
elm_id = "user_memorable_parts_#{num_val}"
|
60
|
-
mem_word.push(num_val) if Taf::Browser.b.select(id: elm_id).exist?
|
61
|
-
end.compact
|
62
|
-
|
63
|
-
array_password = password.split('')
|
64
|
-
array_password.map!(&:upcase)
|
65
|
-
|
66
|
-
found_mem_nums.each do |mem_num|
|
67
|
-
char = array_password[(mem_num - 1)]
|
68
|
-
elm_id = "user_memorable_parts_#{mem_num}"
|
69
|
-
Taf::Browser.b.select_list(id: elm_id).option(value: char.to_s)
|
70
|
-
.select
|
71
|
-
end
|
72
|
-
|
73
|
-
Taf::Browser.b.button(value: 'Sign in').wait_until(&:exists?).click
|
74
|
-
if Taf::Browser.b.title.eql?(b_title_success)
|
75
|
-
Taf::MyLog.log.info("User: #{user} has logged in successful.")
|
76
|
-
return true
|
77
|
-
else
|
78
|
-
Taf::MyLog.log.warn("User: #{user} has failed to log in.")
|
79
|
-
return false
|
80
|
-
end
|
81
|
-
end
|
82
54
|
end
|
83
55
|
end
|
84
56
|
end
|
@@ -8,8 +8,8 @@ module Taf
|
|
8
8
|
register :capture_alert
|
9
9
|
|
10
10
|
def perform
|
11
|
-
Taf::Browser.b.
|
12
|
-
alertmsg = Taf::Browser.b.
|
11
|
+
Taf::Browser.b.find_element(class: 'alert').displayed?
|
12
|
+
alertmsg = Taf::Browser.b.find_element(class: 'alert').text
|
13
13
|
Taf::MyLog.log.info("Alert shown: #{alertmsg}")
|
14
14
|
true
|
15
15
|
rescue StandardError
|
@@ -12,11 +12,11 @@ module Taf
|
|
12
12
|
if result == true
|
13
13
|
Taf::MyLog.log.info \
|
14
14
|
"Data has matched: #{@value} in LogFile: #{@value2}"
|
15
|
-
|
15
|
+
true
|
16
16
|
else
|
17
17
|
Taf::MyLog.log.warn \
|
18
18
|
"Problem finding: #{@value} in LogFile: #{@value2}"
|
19
|
-
|
19
|
+
false
|
20
20
|
end
|
21
21
|
end
|
22
22
|
end
|
@@ -8,9 +8,7 @@ module Taf
|
|
8
8
|
register :check_screen_data
|
9
9
|
|
10
10
|
def perform
|
11
|
-
Taf::Browser.b.
|
12
|
-
Taf::Browser.b.element.text.include? @value
|
13
|
-
end
|
11
|
+
Taf::Browser.b.page_source.include? @value
|
14
12
|
Taf::MyLog.log.info("Text found: #{@value}")
|
15
13
|
true
|
16
14
|
rescue StandardError
|
@@ -8,22 +8,18 @@ module Taf
|
|
8
8
|
register :click_button
|
9
9
|
|
10
10
|
def perform
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
11
|
+
if @locate['text']
|
12
|
+
butt = Taf::Browser.b.find_element(xpath: "//*[text()='#{@value}']")
|
13
|
+
butt.displayed?
|
14
|
+
butt.click
|
15
|
+
Taf::MyLog.log.info("Button: #{@value} has been selected")
|
16
|
+
true
|
17
|
+
else
|
18
|
+
button = Taf::Browser.b.find_element("#{@locate}": @value)
|
19
|
+
button.displayed?
|
20
|
+
button.click
|
21
|
+
Taf::MyLog.log.info("Button: #{@value} has been selected")
|
15
22
|
end
|
16
|
-
|
17
|
-
# Otherwise, fallback to locating across the entire DOM.
|
18
|
-
# This can be necessary for when content rendering is deferred
|
19
|
-
# (e.g., a loader in a SPA) or if the user wants to use CSS or XPath.
|
20
|
-
@tag ||= :element
|
21
|
-
|
22
|
-
Taf::Browser.b.send(@tag, "#{@locate}": @value).wait_until(&:exists?)
|
23
|
-
.click
|
24
|
-
|
25
|
-
Taf::MyLog.log.info("Button: #{@value} has been selected")
|
26
|
-
true
|
27
23
|
rescue StandardError
|
28
24
|
Taf::MyLog.log.warn("Button: #{@value} does not exist")
|
29
25
|
false
|
@@ -11,10 +11,10 @@ module Taf
|
|
11
11
|
b_result = system @value
|
12
12
|
if b_result == true
|
13
13
|
Taf::MyLog.log.info("Cmd has been executed sucessfully #{@value}")
|
14
|
-
|
14
|
+
true
|
15
15
|
else
|
16
16
|
Taf::MyLog.log.warn("Theres a problem executing command #{@value}")
|
17
|
-
|
17
|
+
false
|
18
18
|
end
|
19
19
|
end
|
20
20
|
end
|
@@ -17,8 +17,8 @@ module Taf
|
|
17
17
|
|
18
18
|
raise stderr.gets unless wait_thr.value.success?
|
19
19
|
|
20
|
-
Taf::Browser.b.
|
21
|
-
.
|
20
|
+
Taf::Browser.b.find_element("#{@locate}": @value)
|
21
|
+
.send_keys stdout.gets
|
22
22
|
|
23
23
|
stdout.close
|
24
24
|
stderr.close
|
@@ -8,14 +8,16 @@ module Taf
|
|
8
8
|
register :handle_browser_window
|
9
9
|
|
10
10
|
def perform
|
11
|
-
Taf::Browser.b.
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
11
|
+
Taf::Browser.b.window_handles.each do |handle|
|
12
|
+
Taf::Browser.b.switch_to.window handle
|
13
|
+
sleep 3
|
14
|
+
Taf::Browser.b.title.eql?(@value.to_s)
|
15
|
+
Taf::MyLog.log.info("Window title: #{@value} is correct")
|
16
|
+
true
|
17
|
+
rescue StandardError
|
18
|
+
Taf::MyLog.log.warn("Window not found: #{@value}")
|
19
|
+
false
|
20
|
+
end
|
19
21
|
end
|
20
22
|
end
|
21
23
|
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Handle leave iframe function.
|
7
|
+
class LeaveIframe < Base
|
8
|
+
register :leave_iframe
|
9
|
+
|
10
|
+
def perform
|
11
|
+
# Return to the top level
|
12
|
+
Taf::Browser.b.switch_to.default_content
|
13
|
+
Taf::MyLog.log.info('iframe switched to top level successfully')
|
14
|
+
true
|
15
|
+
rescue StandardError
|
16
|
+
Taf::MyLog.log.warn('iframe failed to switched to top level')
|
17
|
+
false
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -16,7 +16,9 @@ module Taf
|
|
16
16
|
|
17
17
|
def login_user(user)
|
18
18
|
case @value.downcase
|
19
|
+
when 'admin_portal_login' then admin_portal_login(user)
|
19
20
|
when 'portal_login' then portal_login(user)
|
21
|
+
when 'sint_login' then sint_login(user)
|
20
22
|
when 'sso_login' then sso_login(user)
|
21
23
|
else
|
22
24
|
Taf::MyLog.log.error "unable to find login: #{@value}"
|
@@ -26,40 +28,32 @@ module Taf
|
|
26
28
|
|
27
29
|
private
|
28
30
|
|
31
|
+
def admin_portal_login(user)
|
32
|
+
url = ENV['ADMINL_URL']
|
33
|
+
pass = ENV['ADMIN_USER_PASS']
|
34
|
+
b_title = 'Log in Portal Admin'
|
35
|
+
b_title_success = 'Home Admin Portal'
|
36
|
+
user_elm = 'admin_username'
|
37
|
+
pass_elm = 'admin_password'
|
38
|
+
|
39
|
+
Taf::Browser.b.navigate.to(url)
|
40
|
+
url_check(url)
|
41
|
+
login_process(b_title, user_elm, pass_elm, user, pass)
|
42
|
+
login_check(b_title_success, user)
|
43
|
+
end
|
44
|
+
|
29
45
|
def portal_login(user)
|
30
46
|
url = ENV['PORTAL_URL']
|
31
47
|
pass = ENV['PORTAL_USER_PASS']
|
32
|
-
b_title = 'Log in'
|
33
|
-
b_title_success = 'Home'
|
34
|
-
memorable_word_title = 'Memorable word'
|
48
|
+
b_title = 'Log in Portal'
|
49
|
+
b_title_success = 'Home Portal'
|
35
50
|
user_elm = 'user_email'
|
36
51
|
pass_elm = 'user_password'
|
37
|
-
max_retry = 2
|
38
52
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
begin
|
45
|
-
Taf::Browser.b.wait_until(timeout: 30) do |b|
|
46
|
-
b.title == b_title_success || b.title == memorable_word_title
|
47
|
-
end
|
48
|
-
rescue Watir::Wait::TimeoutError
|
49
|
-
Taf::MyLog.log.warn('Retrying login process...')
|
50
|
-
next
|
51
|
-
end
|
52
|
-
|
53
|
-
success = true
|
54
|
-
|
55
|
-
if Taf::Browser.b.title.eql?(memorable_word_title)
|
56
|
-
success = portal_mem_word(user, b_title_success)
|
57
|
-
end
|
58
|
-
|
59
|
-
return success
|
60
|
-
end
|
61
|
-
|
62
|
-
false
|
53
|
+
Taf::Browser.b.navigate.to(url)
|
54
|
+
url_check(url)
|
55
|
+
login_process(b_title, user_elm, pass_elm, user, pass)
|
56
|
+
login_check(b_title_success, user)
|
63
57
|
end
|
64
58
|
|
65
59
|
def sso_login(user)
|
@@ -69,7 +63,19 @@ module Taf
|
|
69
63
|
user_elm = 'username'
|
70
64
|
pass_elm = 'password'
|
71
65
|
|
72
|
-
|
66
|
+
login_process(b_title, user_elm, pass_elm, user, pass)
|
67
|
+
login_check(b_title_success, user)
|
68
|
+
end
|
69
|
+
|
70
|
+
def sint_login(user)
|
71
|
+
url = ENV['SINT_URL']
|
72
|
+
pass = ENV['SINT_USER_PASS']
|
73
|
+
b_title = 'SINT'
|
74
|
+
b_title_success = 'SINT'
|
75
|
+
user_elm = 'user_username'
|
76
|
+
pass_elm = 'user_password'
|
77
|
+
|
78
|
+
Taf::Browser.b.navigate.to(url)
|
73
79
|
url_check(url)
|
74
80
|
login_process(b_title, user_elm, pass_elm, user, pass)
|
75
81
|
login_check(b_title_success, user)
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Radio or Checkbox Button function.
|
7
|
+
class RadioCheckboxButton < Base
|
8
|
+
register :radio_or_checkbox_button
|
9
|
+
|
10
|
+
def perform
|
11
|
+
Taf::Browser.b.find_element("#{@locate}": @value).click
|
12
|
+
Taf::Browser.b.find_element("#{@locate}": @value).selected?
|
13
|
+
Taf::MyLog.log.info("Check box / Radio: #{@value} has been selected")
|
14
|
+
true
|
15
|
+
rescue StandardError
|
16
|
+
Taf::MyLog.log.warn("Check box / Radio: #{@value} does not exist")
|
17
|
+
false
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -8,9 +8,9 @@ module Taf
|
|
8
8
|
register :select_dropdown
|
9
9
|
|
10
10
|
def perform
|
11
|
-
|
12
|
-
|
13
|
-
|
11
|
+
element = Taf::Browser.b.find_element("#{@locate}": @value)
|
12
|
+
select = Selenium::WebDriver::Support::Select.new(element)
|
13
|
+
select.select_by(:text, @value2)
|
14
14
|
Taf::MyLog.log.info("Dropdown item: #{@value2} has been selected")
|
15
15
|
true
|
16
16
|
rescue StandardError
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Handle switch to iframe function.
|
7
|
+
class SwitchToIframe < Base
|
8
|
+
register :switch_to_iframe
|
9
|
+
|
10
|
+
def perform
|
11
|
+
Taf::Browser.b.switch_to.frame @value.to_s
|
12
|
+
Taf::MyLog.log.info("Switched to iframe: #{@value} successfully")
|
13
|
+
true
|
14
|
+
rescue StandardError
|
15
|
+
Taf::MyLog.log.warn("Failed to switch to iframe: #{@value}")
|
16
|
+
false
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Handle Browser Window function.
|
7
|
+
class SwitchToOriginalTabOrWindow < Base
|
8
|
+
register :switch_to_original_tab_or_window
|
9
|
+
|
10
|
+
def perform
|
11
|
+
Taf::Browser.b.switch_to.window original_window
|
12
|
+
sleep 2
|
13
|
+
Taf::Browser.b.title.eql?(@value.to_s)
|
14
|
+
Taf::MyLog.log.info("Original Window title: #{@value} is correct")
|
15
|
+
true
|
16
|
+
rescue StandardError
|
17
|
+
Taf::MyLog.log.warn("Original Window not found: #{@value}")
|
18
|
+
false
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -7,27 +7,11 @@ module Taf
|
|
7
7
|
class WriteBoxdata < Base
|
8
8
|
register :write_box_data
|
9
9
|
|
10
|
-
def check
|
11
|
-
@elms = %i[textarea text_field iframe]
|
12
|
-
|
13
|
-
found_box = @elms.map do |elm|
|
14
|
-
Taf::Browser.b.send(elm, "#{@locate}": @value).exists?
|
15
|
-
end.compact
|
16
|
-
|
17
|
-
raise 'Multiple matches' if found_box.select { |i| i }.empty?
|
18
|
-
|
19
|
-
index = found_box.index(true)
|
20
|
-
return unless index
|
21
|
-
|
22
|
-
index
|
23
|
-
end
|
24
|
-
|
25
10
|
def perform
|
26
11
|
txt = @value2
|
27
12
|
txt = ENV[txt.to_s] if ENV[txt.to_s]
|
28
|
-
|
29
|
-
Taf::Browser.b.
|
30
|
-
.wait_until(&:exists?).send_keys txt
|
13
|
+
Taf::Browser.b.find_element("#{@locate}": @value).displayed?
|
14
|
+
Taf::Browser.b.find_element("#{@locate}": @value).send_keys txt
|
31
15
|
Taf::MyLog.log.info("Textbox: #{@value} has correct value: #{txt}")
|
32
16
|
true
|
33
17
|
rescue StandardError
|
data/lib/taf/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: taf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andy Perrett
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-02-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -150,20 +150,6 @@ dependencies:
|
|
150
150
|
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: '0.7'
|
153
|
-
- !ruby/object:Gem::Dependency
|
154
|
-
name: watir
|
155
|
-
requirement: !ruby/object:Gem::Requirement
|
156
|
-
requirements:
|
157
|
-
- - "~>"
|
158
|
-
- !ruby/object:Gem::Version
|
159
|
-
version: '6.16'
|
160
|
-
type: :runtime
|
161
|
-
prerelease: false
|
162
|
-
version_requirements: !ruby/object:Gem::Requirement
|
163
|
-
requirements:
|
164
|
-
- - "~>"
|
165
|
-
- !ruby/object:Gem::Version
|
166
|
-
version: '6.16'
|
167
153
|
description: Test Automation Framework (TAF) to allow simple test web automation -
|
168
154
|
external use
|
169
155
|
email:
|
@@ -194,8 +180,6 @@ files:
|
|
194
180
|
- lib/taf/test_steps/handlers/base/browser_quit.rb
|
195
181
|
- lib/taf/test_steps/handlers/base/browser_refresh.rb
|
196
182
|
- lib/taf/test_steps/handlers/base/capture_alert.rb
|
197
|
-
- lib/taf/test_steps/handlers/base/check_box.rb
|
198
|
-
- lib/taf/test_steps/handlers/base/check_boxdata.rb
|
199
183
|
- lib/taf/test_steps/handlers/base/check_browser_title.rb
|
200
184
|
- lib/taf/test_steps/handlers/base/check_logs.rb
|
201
185
|
- lib/taf/test_steps/handlers/base/check_screendata.rb
|
@@ -206,12 +190,14 @@ files:
|
|
206
190
|
- lib/taf/test_steps/handlers/base/handle_browser_window.rb
|
207
191
|
- lib/taf/test_steps/handlers/base/health_check.rb
|
208
192
|
- lib/taf/test_steps/handlers/base/ipause.rb
|
209
|
-
- lib/taf/test_steps/handlers/base/
|
193
|
+
- lib/taf/test_steps/handlers/base/leave_iframe.rb
|
210
194
|
- lib/taf/test_steps/handlers/base/login.rb
|
211
195
|
- lib/taf/test_steps/handlers/base/open_url.rb
|
212
|
-
- lib/taf/test_steps/handlers/base/
|
196
|
+
- lib/taf/test_steps/handlers/base/radio_or_checkbox_button.rb
|
213
197
|
- lib/taf/test_steps/handlers/base/select_dropdown.rb
|
214
198
|
- lib/taf/test_steps/handlers/base/send_special_keys.rb
|
199
|
+
- lib/taf/test_steps/handlers/base/switch_to_iframe.rb
|
200
|
+
- lib/taf/test_steps/handlers/base/switch_to_original_tab_or_window.rb
|
215
201
|
- lib/taf/test_steps/handlers/base/write_box_data.rb
|
216
202
|
- lib/taf/test_steps/skip_step.rb
|
217
203
|
- lib/taf/test_steps/step.rb
|
@@ -1,22 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Taf
|
4
|
-
module TestSteps
|
5
|
-
module Handlers
|
6
|
-
# Check Box function.
|
7
|
-
class CheckBox < Base
|
8
|
-
register :check_box
|
9
|
-
|
10
|
-
def perform
|
11
|
-
Taf::Browser.b.checkbox("#{@locate}": @value).wait_until(&:exists?)
|
12
|
-
.click
|
13
|
-
Taf::MyLog.log.info("Check box: #{@value} has been selected")
|
14
|
-
true
|
15
|
-
rescue StandardError
|
16
|
-
Taf::MyLog.log.warn("Check box: #{@value} does not exist")
|
17
|
-
false
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
@@ -1,46 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Taf
|
4
|
-
module TestSteps
|
5
|
-
module Handlers
|
6
|
-
# Check Box Data function.
|
7
|
-
class CheckBoxdata < Base
|
8
|
-
register :check_box_data
|
9
|
-
|
10
|
-
def check
|
11
|
-
@elms = %i[textarea text_field iframe]
|
12
|
-
|
13
|
-
found_box = @elms.map do |elm|
|
14
|
-
Taf::Browser.b.send(elm, "#{@locate}": @value).exists?
|
15
|
-
end.compact
|
16
|
-
|
17
|
-
raise 'Multiple matches' if found_box.select { |i| i }.empty?
|
18
|
-
|
19
|
-
index = found_box.index(true)
|
20
|
-
return unless index
|
21
|
-
|
22
|
-
index
|
23
|
-
end
|
24
|
-
|
25
|
-
def perform
|
26
|
-
index = check
|
27
|
-
ele = Taf::Browser.b.send(@elms[index], "#{@locate}": @value)
|
28
|
-
|
29
|
-
ele.wait_until(&:exists?)
|
30
|
-
|
31
|
-
if ele.value == @value2
|
32
|
-
Taf::MyLog.log.info(
|
33
|
-
"Textbox: #{@value} has correct value: #{@value2}"
|
34
|
-
)
|
35
|
-
true
|
36
|
-
else
|
37
|
-
Taf::MyLog.log.warn(
|
38
|
-
"Textbox: got #{ele.value}, expected #{@value2}"
|
39
|
-
)
|
40
|
-
false
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Taf
|
4
|
-
module TestSteps
|
5
|
-
module Handlers
|
6
|
-
# List all Dropdown Values function.
|
7
|
-
class ListAllDropdownValues < Base
|
8
|
-
register :list_all_dropdown_values
|
9
|
-
|
10
|
-
def perform
|
11
|
-
Taf::Browser.b.element("#{@locate}": @value).wait_until(&:exists?)
|
12
|
-
Taf::Browser.b.select_list("#{@locate}": @value).options.each do |i|
|
13
|
-
Taf::MyLog.log.info("List of dropdown for #{@value} are: #{i.text}")
|
14
|
-
return true
|
15
|
-
end
|
16
|
-
rescue StandardError
|
17
|
-
Taf::MyLog.log.warn("List dropdown: #{@value} does not exist")
|
18
|
-
false
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Taf
|
4
|
-
module TestSteps
|
5
|
-
module Handlers
|
6
|
-
# Radio Button function.
|
7
|
-
class RadioButton < Base
|
8
|
-
register :radio_button
|
9
|
-
|
10
|
-
def perform
|
11
|
-
Taf::Browser.b.radio("#{@locate}": @value).wait_until(&:exists?).set
|
12
|
-
Taf::MyLog.log.info("Radio button: #{@value} has been selected")
|
13
|
-
true
|
14
|
-
rescue StandardError
|
15
|
-
Taf::MyLog.log.warn("Radio button: #{@value} does not exist")
|
16
|
-
false
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|