teber-library 0.1.3 → 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/.DS_Store +0 -0
- data/README.md +8 -0
- data/exe/teber +5 -0
- data/lib/teber.rb +38 -2
- data/lib/teber/version.rb +1 -1
- data/sample/.DS_Store +0 -0
- data/sample/.gitignore +1 -0
- data/sample/CONTRIBUTING.md +93 -0
- data/sample/Gemfile +20 -0
- data/sample/Gemfile.lock +130 -0
- data/sample/LICENSE +674 -0
- data/sample/README.md +263 -0
- data/sample/_config.yml +1 -0
- data/sample/config/cucumber.yml +2 -0
- data/sample/features/.DS_Store +0 -0
- data/sample/features/feature/.gitkeep +0 -0
- data/sample/features/feature/googleSearch.feature +27 -0
- data/sample/features/feature/googleSearchParallel.feature +9 -0
- data/sample/features/global-data/.gitkeep +0 -0
- data/sample/features/global-data/global.yml +4 -0
- data/sample/features/libraries/.gitkeep +0 -0
- data/sample/features/libraries/Teber_Ruby_Black.png +0 -0
- data/sample/features/libraries/categories.json +31 -0
- data/sample/features/libraries/driver.rb +212 -0
- data/sample/features/libraries/locator.rb +146 -0
- data/sample/features/libraries/wait.rb +31 -0
- data/sample/features/locators/.gitkeep +0 -0
- data/sample/features/locators/googleSearch.rb +18 -0
- data/sample/features/pages/.gitkeep +0 -0
- data/sample/features/pages/googleSearch.rb +21 -0
- data/sample/features/step_definitions/.gitkeep +0 -0
- data/sample/features/step_definitions/googleSearch.rb +31 -0
- data/sample/features/support/env.rb +82 -0
- data/sample/features/test-data/.gitkeep +0 -0
- data/sample/features/test-data/googleSearch.yml +2 -0
- data/sample/features/test-data/googleSearchParallel.yml +2 -0
- data/teber-library.gemspec +12 -0
- metadata +202 -2
@@ -0,0 +1,146 @@
|
|
1
|
+
# module Libraries
|
2
|
+
# class Locator
|
3
|
+
# attr_accessor :how
|
4
|
+
# attr_accessor :what
|
5
|
+
# attr_accessor :options
|
6
|
+
|
7
|
+
# def initialize(
|
8
|
+
# how,
|
9
|
+
# what,
|
10
|
+
# options = {
|
11
|
+
# "hidden" => false,
|
12
|
+
# "ajax_load" => false,
|
13
|
+
# })
|
14
|
+
# @how = how
|
15
|
+
# @what = what
|
16
|
+
# @options = options
|
17
|
+
# end
|
18
|
+
|
19
|
+
# def self.mouse_over(element, driver = $focus_driver)
|
20
|
+
# driver.action.move_to(element).perform
|
21
|
+
# end
|
22
|
+
|
23
|
+
# def click(driver = $focus_driver)
|
24
|
+
# begin
|
25
|
+
# driver.find_element(self).click
|
26
|
+
# puts "Clicked - #{self.how} => #{self.what}"
|
27
|
+
# rescue Exception => e
|
28
|
+
# puts "Not clicked at - #{self.how} => #{self.what}"
|
29
|
+
# puts e.message
|
30
|
+
# end
|
31
|
+
# end
|
32
|
+
|
33
|
+
# def text(driver = $focus_driver)
|
34
|
+
# return driver.find_element(self).text
|
35
|
+
# end
|
36
|
+
|
37
|
+
# def texts(driver = $focus_driver)
|
38
|
+
# elements_text = []
|
39
|
+
# driver.find_elements(self).each do |element|
|
40
|
+
# elements_text.push(element.text)
|
41
|
+
# end
|
42
|
+
# return elements_text
|
43
|
+
# end
|
44
|
+
|
45
|
+
# def displayed?(driver = $focus_driver)
|
46
|
+
# driver.find_element(self).displayed?
|
47
|
+
# end
|
48
|
+
|
49
|
+
# def enabled?(driver = $focus_driver)
|
50
|
+
# driver.find_element(self).enabled?
|
51
|
+
# end
|
52
|
+
|
53
|
+
# def is_enabled_with_wait?(timeout = $conf["implicit_wait"], driver = $focus_driver)
|
54
|
+
# index = 0
|
55
|
+
# while driver.find_element(self).enabled? == false
|
56
|
+
# sleep 1
|
57
|
+
# break if index == timeout
|
58
|
+
# index += 1
|
59
|
+
# end
|
60
|
+
# end
|
61
|
+
|
62
|
+
# def selected?(driver = $focus_driver)
|
63
|
+
# driver.find_element(self).selected?
|
64
|
+
# end
|
65
|
+
|
66
|
+
# def is_present?(driver = $focus_driver)
|
67
|
+
# driver.driver.manage.timeouts.implicit_wait = 0
|
68
|
+
# begin
|
69
|
+
# return driver.driver.find_element(self.how, self.what).displayed?
|
70
|
+
# rescue Exception => e
|
71
|
+
# driver.driver.manage.timeouts.implicit_wait = $conf["implicit_wait"]
|
72
|
+
# return false
|
73
|
+
# ensure
|
74
|
+
# driver.driver.manage.timeouts.implicit_wait = $conf["implicit_wait"]
|
75
|
+
# end
|
76
|
+
# end
|
77
|
+
|
78
|
+
# def is_not_present?(driver = $focus_driver)
|
79
|
+
# return !is_present?(driver)
|
80
|
+
# end
|
81
|
+
|
82
|
+
# def is_present_with_wait?(timeout = $conf["implicit_wait"], driver = $focus_driver)
|
83
|
+
# Wait.wait_for_element(self, timeout, driver)
|
84
|
+
# is_present?(driver)
|
85
|
+
# end
|
86
|
+
|
87
|
+
# def is_not_present_with_wait?(timeout = $conf["implicit_wait"], driver = $focus_driver)
|
88
|
+
# Wait.wait_for_element_hide(self, timeout, driver)
|
89
|
+
# return !is_present?(driver)
|
90
|
+
# end
|
91
|
+
|
92
|
+
# def click_if_present(driver = $focus_driver)
|
93
|
+
# click(driver) if is_present?(driver)
|
94
|
+
# end
|
95
|
+
|
96
|
+
# def click_if_present_with_wait(timeout = $conf["implicit_wait"], driver = $focus_driver)
|
97
|
+
# click(driver) if is_present_with_wait?(timeout, driver)
|
98
|
+
# end
|
99
|
+
|
100
|
+
# def move_and_click(driver = $focus_driver)
|
101
|
+
# element = driver.find_element(self)
|
102
|
+
# driver.action.move_to(element).click.perform
|
103
|
+
# end
|
104
|
+
|
105
|
+
# def scroll_to_locator(driver = $focus_driver)
|
106
|
+
# $focus_driver.scroll_to_locator(self)
|
107
|
+
# end
|
108
|
+
|
109
|
+
# ################################
|
110
|
+
# # Check box methods
|
111
|
+
# ################################
|
112
|
+
|
113
|
+
# def is_checked?(driver = $focus_driver)
|
114
|
+
# self.attribute("checked") == "true"
|
115
|
+
# end
|
116
|
+
|
117
|
+
# def check(driver = $focus_driver)
|
118
|
+
# self.click unless self.is_checked?
|
119
|
+
# end
|
120
|
+
|
121
|
+
# def uncheck(driver = $focus_driver)
|
122
|
+
# self.click if self.is_checked?
|
123
|
+
# end
|
124
|
+
|
125
|
+
# ##############################
|
126
|
+
# # Text box methods
|
127
|
+
# ##############################
|
128
|
+
|
129
|
+
# def clear(driver = $focus_driver)
|
130
|
+
# driver.find_element(self).clear
|
131
|
+
# end
|
132
|
+
|
133
|
+
# def send_keys(*args)
|
134
|
+
# $focus_driver.find_element(self).send_keys(*args)
|
135
|
+
# end
|
136
|
+
|
137
|
+
# def clear_and_send_keys(*args)
|
138
|
+
# clear($focus_driver)
|
139
|
+
# send_keys(*args)
|
140
|
+
# end
|
141
|
+
|
142
|
+
# def get_value(driver = $focus_driver)
|
143
|
+
# driver.find_element(self).attribute("value")
|
144
|
+
# end
|
145
|
+
# end
|
146
|
+
# end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# module Libraries
|
2
|
+
# module Wait
|
3
|
+
|
4
|
+
# # avoid defining self in def self.some_method -> def some_method
|
5
|
+
# class << self
|
6
|
+
|
7
|
+
# def wait_for_element(locator, timeout=$conf["implicit_wait"], focus_driver = $focus_driver)
|
8
|
+
# index=0
|
9
|
+
# while locator.is_present?(focus_driver) == false
|
10
|
+
# sleep 1
|
11
|
+
# if index == timeout
|
12
|
+
# break
|
13
|
+
# end
|
14
|
+
# index+=1
|
15
|
+
# end
|
16
|
+
# end
|
17
|
+
|
18
|
+
# def wait_for_element_hide(locator, timeout=$conf["implicit_wait"], focus_driver = $focus_driver)
|
19
|
+
# index=0
|
20
|
+
# while locator.is_present?(focus_driver) == true
|
21
|
+
# sleep 1
|
22
|
+
# if index == timeout
|
23
|
+
# break
|
24
|
+
# end
|
25
|
+
# index+=1
|
26
|
+
# end
|
27
|
+
# end
|
28
|
+
# end
|
29
|
+
# end
|
30
|
+
# end
|
31
|
+
|
File without changes
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Locators
|
2
|
+
class GoogleSearch
|
3
|
+
|
4
|
+
attr_reader :SEARCH_BOX
|
5
|
+
attr_reader :SEARCH_BUTTON
|
6
|
+
attr_reader :AFTER_SEARCH_IMAGE
|
7
|
+
|
8
|
+
def initialize
|
9
|
+
|
10
|
+
@SEARCH_BOX = Locator.new(:name, "q")
|
11
|
+
@SEARCH_BUTTON = Locator.new(:css, "input[name='btnK']")
|
12
|
+
@AFTER_SEARCH_IMAGE = Locator.new(:css, "div.logo img[alt*='Google']")
|
13
|
+
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
File without changes
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Pages
|
2
|
+
class GoogleSearch < Locators::GoogleSearch
|
3
|
+
|
4
|
+
def initialize
|
5
|
+
super()
|
6
|
+
end
|
7
|
+
|
8
|
+
def enter_text_and_search(string)
|
9
|
+
@SEARCH_BOX.is_present_with_wait?
|
10
|
+
@SEARCH_BOX.clear_and_send_keys(string)
|
11
|
+
@SEARCH_BUTTON.scroll_to_locator
|
12
|
+
@SEARCH_BUTTON.move_and_click
|
13
|
+
end
|
14
|
+
|
15
|
+
def is_results_page_displayed?
|
16
|
+
@AFTER_SEARCH_IMAGE.is_present_with_wait?
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
File without changes
|
@@ -0,0 +1,31 @@
|
|
1
|
+
Before('@TC_Google_Search') do
|
2
|
+
$filter_run_once ||= false # have to define a variable before we can reference its value
|
3
|
+
if !$filter_run_once
|
4
|
+
@@google_page = Pages::GoogleSearch.new
|
5
|
+
end
|
6
|
+
$filter_run_once = true
|
7
|
+
end
|
8
|
+
|
9
|
+
Before('@TC_Google_Search') do
|
10
|
+
@@driver = Driver.new()
|
11
|
+
end
|
12
|
+
|
13
|
+
After('@TC_Google_Search') do
|
14
|
+
@@driver.quit
|
15
|
+
end
|
16
|
+
|
17
|
+
Given("I navigate to google search page") do
|
18
|
+
@@driver.get($param["googleURL"])
|
19
|
+
end
|
20
|
+
|
21
|
+
When("I type the term in google search bar and click on serach results") do
|
22
|
+
@@google_page.enter_text_and_search($param["searchTerm"])
|
23
|
+
end
|
24
|
+
|
25
|
+
Then("I should get the results page") do
|
26
|
+
expect(@@google_page.is_results_page_displayed?).to eql true
|
27
|
+
end
|
28
|
+
|
29
|
+
When("I type the {string} in google search bar and click on serach results") do |string|
|
30
|
+
@@google_page.enter_text_and_search(string)
|
31
|
+
end
|
@@ -0,0 +1,82 @@
|
|
1
|
+
require 'allure-cucumber'
|
2
|
+
require 'webdriver_manager'
|
3
|
+
require 'cucumber'
|
4
|
+
require 'require_all'
|
5
|
+
require 'pathname'
|
6
|
+
require 'fileutils'
|
7
|
+
require "pry"
|
8
|
+
require 'pry-remote'
|
9
|
+
require_rel "../locators/"
|
10
|
+
require_rel "../libraries/"
|
11
|
+
require_rel "../pages/"
|
12
|
+
require "time"
|
13
|
+
require 'faker'
|
14
|
+
require 'git'
|
15
|
+
require 'rest-client'
|
16
|
+
require 'json'
|
17
|
+
require 'parallel_tests'
|
18
|
+
require 'teber'
|
19
|
+
|
20
|
+
include AllureCucumber::DSL
|
21
|
+
include Teber
|
22
|
+
$VERBOSE = nil
|
23
|
+
|
24
|
+
if File.exist?('features/global-data/global.yml')
|
25
|
+
$conf = YAML.load_file('features/global-data/global.yml')
|
26
|
+
else
|
27
|
+
puts "features/global-data/global.yml is not found !!!"
|
28
|
+
end
|
29
|
+
|
30
|
+
AllureCucumber::configure do |c|
|
31
|
+
c.output_dir = "reports/allure"
|
32
|
+
c.clean_dir = true
|
33
|
+
end
|
34
|
+
|
35
|
+
Cucumber::Core::Test::Step.module_eval do
|
36
|
+
def name
|
37
|
+
return text if self.text == 'Before hook'
|
38
|
+
return text if self.text == 'After hook'
|
39
|
+
"#{source.last.keyword}#{text}"
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
Before do |scenario|
|
44
|
+
# Have the test data corresponding to a feature in the path `/features/test-data/` in the .conf format
|
45
|
+
# Name the file as same as the feature file and the below code will parse that file and have the variables in $param
|
46
|
+
# Test data specific to that feature can be accessed with $param in that step definition file.
|
47
|
+
feature = scenario.location
|
48
|
+
feature_file_name = feature.to_s.rpartition('/').last.split('.feature')[0]
|
49
|
+
test_variables_file_location = Dir.pwd + "/features/test-data/#{feature_file_name}.yml"
|
50
|
+
if File.exists?("#{test_variables_file_location}")
|
51
|
+
$param = YAML.load_file(test_variables_file_location)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
After do |scenario|
|
56
|
+
if scenario.failed?
|
57
|
+
begin
|
58
|
+
drivers = Driver.get_all_drivers
|
59
|
+
drivers.each do |l,m|
|
60
|
+
Driver.switch_to(l)
|
61
|
+
scenario.attach_file(m,l.save_screenshot)
|
62
|
+
end
|
63
|
+
rescue Exception => e
|
64
|
+
puts e.message
|
65
|
+
puts e.backtrace
|
66
|
+
end
|
67
|
+
# to quit the test run if any one of the scenario is failed
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
|
72
|
+
at_exit do
|
73
|
+
# Moving the categories.json file from libraries to the allure folder
|
74
|
+
# rerun results are not shown with the categories in allure report.
|
75
|
+
# Raised an issue with allure-cucumber https://github.com/allure-framework/allure-cucumber/issues/83
|
76
|
+
if ParallelTests.first_process?
|
77
|
+
ParallelTests.wait_for_other_processes_to_finish
|
78
|
+
end
|
79
|
+
source_directory = Dir.pwd + "/features/libraries/categories.json"
|
80
|
+
destination_directory = Dir.pwd + "/reports/allure/"
|
81
|
+
`cp -a #{source_directory} #{destination_directory}`
|
82
|
+
end
|
File without changes
|
data/teber-library.gemspec
CHANGED
@@ -12,6 +12,7 @@ Gem::Specification.new do |spec|
|
|
12
12
|
spec.description = %q{To have all the common methods that are used for UI automation, this enables us to share the methods across teams}
|
13
13
|
spec.homepage = "https://nareshnavinash.wixsite.com/teber"
|
14
14
|
spec.license = "GPL-3.0"
|
15
|
+
spec.executables << 'teber'
|
15
16
|
|
16
17
|
# spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
|
17
18
|
|
@@ -31,4 +32,15 @@ Gem::Specification.new do |spec|
|
|
31
32
|
spec.add_development_dependency "bundler", "~> 2.0"
|
32
33
|
spec.add_development_dependency "rake", "~> 10.0"
|
33
34
|
spec.add_development_dependency "rspec", "~> 3.0"
|
35
|
+
spec.add_runtime_dependency 'selenium-webdriver', '3.142.6'
|
36
|
+
spec.add_runtime_dependency 'cucumber', '~> 3.1', '>= 3.1.2'
|
37
|
+
spec.add_runtime_dependency 'allure-cucumber', '~> 0.6.1'
|
38
|
+
spec.add_runtime_dependency 'rspec', '3.7.0'
|
39
|
+
spec.add_runtime_dependency 'parallel_tests', '2.21.0'
|
40
|
+
spec.add_runtime_dependency 'parseconfig', '1.0.8'
|
41
|
+
spec.add_runtime_dependency 'require_all', '~> 1.4', '>= 1.4.0'
|
42
|
+
spec.add_runtime_dependency 'os', '~> 0.9.6'
|
43
|
+
spec.add_runtime_dependency 'pry', '~> 0.10.4'
|
44
|
+
spec.add_runtime_dependency 'yaml_extend', '~> 0.2.0'
|
45
|
+
spec.add_runtime_dependency 'webdriver_manager', '~> 0.6.0'
|
34
46
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: teber-library
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Naresh Sekar
|
@@ -52,14 +52,182 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '3.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: selenium-webdriver
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 3.142.6
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 3.142.6
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: cucumber
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '3.1'
|
76
|
+
- - ">="
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: 3.1.2
|
79
|
+
type: :runtime
|
80
|
+
prerelease: false
|
81
|
+
version_requirements: !ruby/object:Gem::Requirement
|
82
|
+
requirements:
|
83
|
+
- - "~>"
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '3.1'
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: 3.1.2
|
89
|
+
- !ruby/object:Gem::Dependency
|
90
|
+
name: allure-cucumber
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - "~>"
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: 0.6.1
|
96
|
+
type: :runtime
|
97
|
+
prerelease: false
|
98
|
+
version_requirements: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - "~>"
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: 0.6.1
|
103
|
+
- !ruby/object:Gem::Dependency
|
104
|
+
name: rspec
|
105
|
+
requirement: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - '='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: 3.7.0
|
110
|
+
type: :runtime
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - '='
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: 3.7.0
|
117
|
+
- !ruby/object:Gem::Dependency
|
118
|
+
name: parallel_tests
|
119
|
+
requirement: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - '='
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: 2.21.0
|
124
|
+
type: :runtime
|
125
|
+
prerelease: false
|
126
|
+
version_requirements: !ruby/object:Gem::Requirement
|
127
|
+
requirements:
|
128
|
+
- - '='
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: 2.21.0
|
131
|
+
- !ruby/object:Gem::Dependency
|
132
|
+
name: parseconfig
|
133
|
+
requirement: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - '='
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: 1.0.8
|
138
|
+
type: :runtime
|
139
|
+
prerelease: false
|
140
|
+
version_requirements: !ruby/object:Gem::Requirement
|
141
|
+
requirements:
|
142
|
+
- - '='
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: 1.0.8
|
145
|
+
- !ruby/object:Gem::Dependency
|
146
|
+
name: require_all
|
147
|
+
requirement: !ruby/object:Gem::Requirement
|
148
|
+
requirements:
|
149
|
+
- - ">="
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
version: 1.4.0
|
152
|
+
- - "~>"
|
153
|
+
- !ruby/object:Gem::Version
|
154
|
+
version: '1.4'
|
155
|
+
type: :runtime
|
156
|
+
prerelease: false
|
157
|
+
version_requirements: !ruby/object:Gem::Requirement
|
158
|
+
requirements:
|
159
|
+
- - ">="
|
160
|
+
- !ruby/object:Gem::Version
|
161
|
+
version: 1.4.0
|
162
|
+
- - "~>"
|
163
|
+
- !ruby/object:Gem::Version
|
164
|
+
version: '1.4'
|
165
|
+
- !ruby/object:Gem::Dependency
|
166
|
+
name: os
|
167
|
+
requirement: !ruby/object:Gem::Requirement
|
168
|
+
requirements:
|
169
|
+
- - "~>"
|
170
|
+
- !ruby/object:Gem::Version
|
171
|
+
version: 0.9.6
|
172
|
+
type: :runtime
|
173
|
+
prerelease: false
|
174
|
+
version_requirements: !ruby/object:Gem::Requirement
|
175
|
+
requirements:
|
176
|
+
- - "~>"
|
177
|
+
- !ruby/object:Gem::Version
|
178
|
+
version: 0.9.6
|
179
|
+
- !ruby/object:Gem::Dependency
|
180
|
+
name: pry
|
181
|
+
requirement: !ruby/object:Gem::Requirement
|
182
|
+
requirements:
|
183
|
+
- - "~>"
|
184
|
+
- !ruby/object:Gem::Version
|
185
|
+
version: 0.10.4
|
186
|
+
type: :runtime
|
187
|
+
prerelease: false
|
188
|
+
version_requirements: !ruby/object:Gem::Requirement
|
189
|
+
requirements:
|
190
|
+
- - "~>"
|
191
|
+
- !ruby/object:Gem::Version
|
192
|
+
version: 0.10.4
|
193
|
+
- !ruby/object:Gem::Dependency
|
194
|
+
name: yaml_extend
|
195
|
+
requirement: !ruby/object:Gem::Requirement
|
196
|
+
requirements:
|
197
|
+
- - "~>"
|
198
|
+
- !ruby/object:Gem::Version
|
199
|
+
version: 0.2.0
|
200
|
+
type: :runtime
|
201
|
+
prerelease: false
|
202
|
+
version_requirements: !ruby/object:Gem::Requirement
|
203
|
+
requirements:
|
204
|
+
- - "~>"
|
205
|
+
- !ruby/object:Gem::Version
|
206
|
+
version: 0.2.0
|
207
|
+
- !ruby/object:Gem::Dependency
|
208
|
+
name: webdriver_manager
|
209
|
+
requirement: !ruby/object:Gem::Requirement
|
210
|
+
requirements:
|
211
|
+
- - "~>"
|
212
|
+
- !ruby/object:Gem::Version
|
213
|
+
version: 0.6.0
|
214
|
+
type: :runtime
|
215
|
+
prerelease: false
|
216
|
+
version_requirements: !ruby/object:Gem::Requirement
|
217
|
+
requirements:
|
218
|
+
- - "~>"
|
219
|
+
- !ruby/object:Gem::Version
|
220
|
+
version: 0.6.0
|
55
221
|
description: To have all the common methods that are used for UI automation, this
|
56
222
|
enables us to share the methods across teams
|
57
223
|
email:
|
58
224
|
- nareshnavinash@gmail.com
|
59
|
-
executables:
|
225
|
+
executables:
|
226
|
+
- teber
|
60
227
|
extensions: []
|
61
228
|
extra_rdoc_files: []
|
62
229
|
files:
|
230
|
+
- ".DS_Store"
|
63
231
|
- ".gitignore"
|
64
232
|
- ".rspec"
|
65
233
|
- ".travis.yml"
|
@@ -73,12 +241,44 @@ files:
|
|
73
241
|
- _config.yml
|
74
242
|
- bin/console
|
75
243
|
- bin/setup
|
244
|
+
- exe/teber
|
76
245
|
- lib/teber.rb
|
77
246
|
- lib/teber/Teber-Library-Gem.png
|
78
247
|
- lib/teber/driver.rb
|
79
248
|
- lib/teber/locator.rb
|
80
249
|
- lib/teber/version.rb
|
81
250
|
- lib/teber/wait.rb
|
251
|
+
- sample/.DS_Store
|
252
|
+
- sample/.gitignore
|
253
|
+
- sample/CONTRIBUTING.md
|
254
|
+
- sample/Gemfile
|
255
|
+
- sample/Gemfile.lock
|
256
|
+
- sample/LICENSE
|
257
|
+
- sample/README.md
|
258
|
+
- sample/_config.yml
|
259
|
+
- sample/config/cucumber.yml
|
260
|
+
- sample/features/.DS_Store
|
261
|
+
- sample/features/feature/.gitkeep
|
262
|
+
- sample/features/feature/googleSearch.feature
|
263
|
+
- sample/features/feature/googleSearchParallel.feature
|
264
|
+
- sample/features/global-data/.gitkeep
|
265
|
+
- sample/features/global-data/global.yml
|
266
|
+
- sample/features/libraries/.gitkeep
|
267
|
+
- sample/features/libraries/Teber_Ruby_Black.png
|
268
|
+
- sample/features/libraries/categories.json
|
269
|
+
- sample/features/libraries/driver.rb
|
270
|
+
- sample/features/libraries/locator.rb
|
271
|
+
- sample/features/libraries/wait.rb
|
272
|
+
- sample/features/locators/.gitkeep
|
273
|
+
- sample/features/locators/googleSearch.rb
|
274
|
+
- sample/features/pages/.gitkeep
|
275
|
+
- sample/features/pages/googleSearch.rb
|
276
|
+
- sample/features/step_definitions/.gitkeep
|
277
|
+
- sample/features/step_definitions/googleSearch.rb
|
278
|
+
- sample/features/support/env.rb
|
279
|
+
- sample/features/test-data/.gitkeep
|
280
|
+
- sample/features/test-data/googleSearch.yml
|
281
|
+
- sample/features/test-data/googleSearchParallel.yml
|
82
282
|
- teber-library.gemspec
|
83
283
|
homepage: https://nareshnavinash.wixsite.com/teber
|
84
284
|
licenses:
|