selenium_fury 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/.ruby-gemset ADDED
@@ -0,0 +1 @@
1
+ selenium-fury
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ ruby-2.0.0
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source :rubygems
1
+ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in selenium_fury.gemspec
4
4
  gemspec
@@ -0,0 +1,19 @@
1
+ module Selenium
2
+ module WebDriver
3
+ class Timeouts
4
+
5
+ def initialize(bridge)
6
+ @bridge = bridge
7
+ end
8
+
9
+ def implicit_wait
10
+ @implicit_wait || 0
11
+ end
12
+
13
+ def implicit_wait=(seconds)
14
+ @bridge.setImplicitWaitTimeout Integer(seconds * 1000)
15
+ @implicit_wait = seconds || 0
16
+ end
17
+ end
18
+ end
19
+ end
data/lib/selenium_fury.rb CHANGED
@@ -18,6 +18,8 @@ require "selenium_fury/version"
18
18
  require 'rubygems'
19
19
  require 'bundler'
20
20
 
21
+ require "selenium/webdriver/common/timeouts"
22
+
21
23
  require "selenium-webdriver"
22
24
  require "selenium-client"
23
25
  require 'nokogiri'
@@ -25,11 +25,10 @@ module SeleniumFury
25
25
 
26
26
  # @param url [string]
27
27
  # @return [Selenium::WebDriver::Driver]
28
- def launch_web_driver url
28
+ def launch_web_driver url=nil
29
29
  @driver = Selenium::WebDriver.for :chrome
30
- @driver.navigate.to url
30
+ @driver.navigate.to url unless url.nil?
31
31
  end
32
-
33
32
  end
34
33
  end
35
- end
34
+ end
@@ -10,15 +10,29 @@ module SeleniumFury
10
10
  @location = locator
11
11
  @driver = driver
12
12
  @tags = opt[:tags]
13
- @validate = opt[:validate] != false # true if nil
13
+ # Should validate if opt[:validate] is nil, should not validate if doing dynamic matchin
14
+ @validate = opt[:validate] != false && !locator.values.first.match(/\^([^=].*?)\$/)
15
+ # This is different from implicit_wait. This explicitly waits for this element, not for entire driver session.
16
+ @wait = 10 || opt[:wait]
14
17
  end
15
18
 
16
- attr_accessor :location, :driver, :tags
19
+ attr_accessor :location, :driver, :tags, :wait, :implicit_wait
17
20
  attr_writer :validate
18
21
 
19
22
  def validate?
20
23
  @validate
21
24
  end
25
+
26
+ def update_locator(variables)
27
+ locator_value = @location.values.first
28
+ variables.each { |key, value|
29
+ locator_value.scan(/\^([^=]\w*)\$/).flatten.each { |match|
30
+ locator_value.gsub!("^#{match}$", value.to_s) if match == key.to_s
31
+ }
32
+ }
33
+ self
34
+ end
35
+
22
36
  end
23
37
 
24
38
  class CheckboxElement < GenericElement
@@ -54,6 +68,10 @@ module SeleniumFury
54
68
  class TextInputElement < GenericElement
55
69
  include TextElementHelpers
56
70
  end
71
+
72
+ class SelectableElement < GenericElement
73
+ include SelectableElementHelpers
74
+ end
57
75
  end
58
76
  end
59
77
  end
@@ -5,9 +5,15 @@ module GenericElementHelpers
5
5
  end
6
6
 
7
7
  def present?
8
- list.size > 0
8
+ # Set implicit wait to zero so it doesn't wait that time each method call
9
+ implicit_wait = driver.manage.timeouts.implicit_wait
10
+ driver.manage.timeouts.implicit_wait = 0
11
+ present = list.size > 0
12
+ driver.manage.timeouts.implicit_wait = implicit_wait
13
+ present
9
14
  end
10
15
 
16
+ # Raises error if not already present
11
17
  def visible?
12
18
  el.displayed?
13
19
  end
@@ -20,6 +26,10 @@ module GenericElementHelpers
20
26
  el.attribute('value')
21
27
  end
22
28
 
29
+ def move_to
30
+ @driver.action.move_to(el).perform
31
+ end
32
+
23
33
  # Use any methods from WebDriverElement not present
24
34
  def method_missing method_sym, *args
25
35
  if el.respond_to?(method_sym)
@@ -31,26 +41,37 @@ module GenericElementHelpers
31
41
  end
32
42
 
33
43
  module ElementWaitHelpers
34
- def web_driver_wait(opt=10, &condition)
35
- options={}
36
- opt.kind_of?(Integer) ? options[:timeout] = opt : options = opt
37
- Selenium::WebDriver::Wait.new(options).until { condition.call }
44
+ def wait_for(opts={}, &condition)
45
+ opts[:timeout] ||= @wait
46
+ opts[:message] ||= ''
47
+ Selenium::WebDriver::Wait.new(opts).until { condition.call }
48
+ end
49
+
50
+ def wait_present(timeout=@wait)
51
+ wait_for(timeout: timeout) { present? }
52
+ end
53
+
54
+ def wait_not_present(timeout=@wait)
55
+ wait_for(timeout: timeout) { !present? }
38
56
  end
39
57
 
40
- def wait_present(timeout)
41
- web_driver_wait(timeout) { present? }
58
+ def wait_visible(timeout=@wait)
59
+ wait_present(timeout)
60
+ wait_visible!(timeout)
42
61
  end
43
62
 
44
- def wait_visible(timeout)
45
- web_driver_wait(timeout) { visible? }
63
+ # Raises error if not present
64
+ def wait_visible!(timeout=@wait)
65
+ wait_for(timeout: timeout) { visible? }
46
66
  end
47
67
 
48
- def wait_not_present(timeout)
49
- web_driver_wait(timeout) { !present? }
68
+ def wait_not_visible(timeout=@wait)
69
+ wait_for(timeout: timeout) { !present? || !visible? }
50
70
  end
51
71
 
52
- def wait_not_visible(timeout)
53
- web_driver_wait(timeout) { !visible? }
72
+ # Raises error if not present
73
+ def wait_not_visible!(timeout=@wait)
74
+ wait_for(timeout: timeout) { !visible? }
54
75
  end
55
76
  end
56
77
 
@@ -60,7 +81,6 @@ module CheckboxElementHelpers
60
81
  end
61
82
  end
62
83
 
63
-
64
84
  module DropDownHelpers
65
85
  def selected_option
66
86
  Selenium::WebDriver::Support::Select.new(el).first_selected_option.text
@@ -76,30 +96,52 @@ end
76
96
 
77
97
  module ImageElementHelpers
78
98
  def text
79
- attribute('alt')
99
+ el.attribute('alt')
80
100
  end
81
101
 
82
102
  def source
83
- attribute('src')
103
+ el.attribute('src')
84
104
  end
85
105
  end
86
106
 
87
107
  module LinkElementHelpers
88
108
  def link
89
- attribute('href')
109
+ el.attribute('href')
90
110
  end
91
111
  end
92
112
 
93
-
94
113
  module SelectableElementHelpers
95
- def select
96
- raise "Locator at #{location} can not be interacted with" unless visible?
97
- el.click
98
- end
99
114
 
100
115
  def selected?
101
116
  el.selected?
102
117
  end
118
+
119
+ # Raises error if not selectable
120
+ def select!
121
+ raise "Locator at #{location} is not visible" unless visible?
122
+ begin
123
+ el.click
124
+ rescue
125
+ raise "Locator at #{location} can not be interacted with" unless visible?
126
+ end
127
+ check_errors
128
+ end
129
+
130
+ def select
131
+ wait_visible
132
+ begin
133
+ el.click
134
+ rescue Exception => e
135
+ retry_select(e)
136
+ end
137
+ check_errors
138
+ end
139
+
140
+ # Overwrite in your project if desired
141
+ def check_errors; end
142
+ def retry_select(exception)
143
+ raise "Locator at #{location} can not be interacted with - Failed with #{exception}"
144
+ end
103
145
  end
104
146
 
105
147
  module TextElementHelpers
@@ -133,6 +133,13 @@ module SeleniumFury
133
133
  end
134
134
  elements << element_sym unless elements.include? element_sym
135
135
  end
136
+
137
+ def selectable_element(element_sym, locator, opt={})
138
+ define_method(element_sym) do
139
+ SelectableElement.new(locator, driver, opt)
140
+ end
141
+ elements << element_sym unless elements.include? element_sym
142
+ end
136
143
  end
137
144
  end
138
145
  end
@@ -1,3 +1,3 @@
1
1
  module SeleniumFury
2
- VERSION = "1.0.1"
2
+ VERSION = "1.0.2"
3
3
  end
@@ -0,0 +1,11 @@
1
+ require 'spec_helper'
2
+
3
+ describe Selenium::WebDriver::Timeouts do
4
+
5
+ it 'should allow reading of implict wait' do
6
+ launch_web_driver
7
+ driver.manage.timeouts.implicit_wait.should == 0
8
+ driver.manage.timeouts.implicit_wait = 2
9
+ driver.manage.timeouts.implicit_wait.should == 2
10
+ end
11
+ end
@@ -5,48 +5,63 @@ describe PageObject do
5
5
  let(:test_page) { TestPage.new(driver) }
6
6
 
7
7
  before(:each) do
8
- load "test_page/test_page.rb"
8
+ load 'test_page/test_page.rb'
9
9
  launch_web_driver TEST_PAGE_URL
10
10
  end
11
11
 
12
+ describe 'Dynamic Locators' do
13
+
14
+ it 'should allow a single dynamic selection of an element with id' do
15
+ specific_element = test_page.dynamic_locator_id.update_locator(id: 222222)
16
+ specific_element.location.should == {id: 'link222222'}
17
+ specific_element.link.should == 'http://yahoo.com/'
18
+ end
19
+
20
+ it 'should allow multiple dynamic selections of an element with css' do
21
+ specific_element = test_page.dynamic_locator_css.update_locator(locator: 'id', id: 333333)
22
+ specific_element.location.should == {css: "a[id='link333333']"}
23
+ specific_element.link.should == 'http://google.com/'
24
+ end
25
+ end
26
+
12
27
  describe SeleniumFury::SeleniumWebDriver::PageObjectComponents::GenericElement do
13
28
 
14
- it "should return correct object type" do
29
+ it 'should return correct object type' do
15
30
  test_page.input_checkbox_element.should be_an SeleniumFury::SeleniumWebDriver::PageObjectComponents::CheckboxElement
16
31
  end
17
32
 
18
- it "should return correct superclass object type" do
33
+ it 'should return correct superclass object type' do
19
34
  test_page.input_checkbox_element.should be_an SeleniumFury::SeleniumWebDriver::PageObjectComponents::GenericElement
20
35
  end
21
36
 
22
- it "should provide location" do
37
+ it 'should provide location' do
23
38
  test_page.form_element.location.should == {id: 'form'}
24
39
  end
25
40
 
26
- it "should return a web driver element" do
41
+ it 'should return a web driver element' do
27
42
  test_page.form_element.el.should be_an Selenium::WebDriver::Element
28
43
  end
29
44
 
30
- it "should find visible elements" do
45
+ it 'should find visible elements' do
31
46
  test_page.form_element.visible?.should be_true
32
47
  end
33
48
 
34
- it "should return the value" do
49
+ it 'should return the value' do
35
50
  test_page.input_button_element.value.should == 'Click me'
36
51
  end
37
52
 
38
- it "When there is more than one element with the provided locator, it should return an array of all of them" do
53
+ it 'When there is more than one element with the provided locator, it should return an array of all of them' do
39
54
  test_page.listings_element.list.should be_an Array
40
55
  test_page.listings_element.list[0].should be_an Selenium::WebDriver::Element
41
56
  end
42
57
 
43
58
  describe Selenium::WebDriver::Element
44
59
 
45
- it "should return the correct value of a method defined in WebDriver::Element, but not GenericElement class" do
60
+ it 'should return the correct value of a method defined in WebDriver::Element, but not GenericElement class' do
46
61
  test_page.input_button_element.tag_name.should == 'input'
47
62
  end
48
63
 
49
- it "should throw an WebDriver Element error when using a method not defined in either WebDriver::Element or GenericElement classes" do
64
+ it 'should throw an WebDriver Element error when using a method not defined in either WebDriver::Element or GenericElement classes' do
50
65
  expect { test_page.input_checkbox.clickit_good }.to raise_error(NoMethodError)
51
66
  end
52
67
  end
@@ -54,27 +69,27 @@ describe PageObject do
54
69
 
55
70
  describe SeleniumFury::SeleniumWebDriver::PageObjectComponents::CheckboxElement do
56
71
 
57
- it "should check a checkbox not checked" do
72
+ it 'should check a checkbox not checked' do
58
73
  test_page.input_checkbox_element.selected?.should be_false
59
74
  test_page.input_checkbox_element.checked(true)
60
75
  test_page.input_checkbox_element.selected?.should be_true
61
76
  end
62
77
 
63
- it "should leave a checkbox checked when already checked" do
78
+ it 'should leave a checkbox checked when already checked' do
64
79
  test_page.input_checkbox_element.click
65
80
  test_page.input_checkbox_element.selected?.should be_true
66
81
  test_page.input_checkbox_element.checked(true)
67
82
  test_page.input_checkbox_element.selected?.should be_true
68
83
  end
69
84
 
70
- it "should uncheck a checkbox when checked" do
85
+ it 'should uncheck a checkbox when checked' do
71
86
  test_page.input_checkbox_element.click
72
87
  test_page.input_checkbox_element.selected?.should be_true
73
88
  test_page.input_checkbox_element.checked(false)
74
89
  test_page.input_checkbox_element.selected?.should be_false
75
90
  end
76
91
 
77
- it "should leave a checkbox alone when already checked" do
92
+ it 'should leave a checkbox alone when already checked' do
78
93
  test_page.input_checkbox_element.selected?.should be_false
79
94
  test_page.input_checkbox_element.checked(false)
80
95
  test_page.input_checkbox_element.selected?.should be_false
@@ -84,18 +99,18 @@ describe PageObject do
84
99
 
85
100
  describe SeleniumFury::SeleniumWebDriver::PageObjectComponents::DropDownElement do
86
101
 
87
- it "should select from a dropdown by value" do
102
+ it 'should select from a dropdown by value' do
88
103
  test_page.select_element.select_option(:value, 'mercedes')
89
104
  test_page.select_element.selected_option.should == 'Mercedes'
90
105
  end
91
106
 
92
- it "should select from a dropdown by text" do
107
+ it 'should select from a dropdown by text' do
93
108
  what = 'Mercedes'
94
109
  test_page.select_element.select_option(:text, what)
95
110
  test_page.select_element.selected_option.should == what
96
111
  end
97
112
 
98
- it "should select from a dropdown by index" do
113
+ it 'should select from a dropdown by index' do
99
114
  test_page.select_element.select_option(:index, 3)
100
115
  test_page.select_element.selected_option.should == 'Audi'
101
116
  end
@@ -104,7 +119,7 @@ describe PageObject do
104
119
 
105
120
  describe SeleniumFury::SeleniumWebDriver::PageObjectComponents::ImageElement do
106
121
 
107
- it "should return the alternate text for an image" do
122
+ it 'should return the alternate text for an image' do
108
123
  test_page.input_image_element.text.should == 'input image'
109
124
  end
110
125
 
@@ -116,45 +131,191 @@ describe PageObject do
116
131
 
117
132
  describe SeleniumFury::SeleniumWebDriver::PageObjectComponents::LinkElement do
118
133
 
119
- it "should return the link location" do
134
+ it 'should return the link location' do
120
135
  test_page.link_element.link.should == 'http://news.ycombinator.com/'
121
136
  end
122
137
  end
123
138
 
124
139
 
125
140
  describe SelectableElementHelpers do
141
+ let(:wait_element) { WaitElement.new(driver) }
142
+
143
+ class WaitElement < PageObject
144
+ generic_element :not_a_element, {id: 'not a element'}
145
+ selectable_element :not_visible, {id: 'not_visible'}
146
+ end
126
147
 
127
- it "should properly submit a form" do
128
- text = "Hey buddy"
148
+ it 'should properly submit a form' do
149
+ text = 'Hey buddy'
129
150
  test_page.input_message_element.send_keys(text)
130
151
  test_page.input_msg_button_element.select
131
152
  test_page.message_element.text.should == text
132
153
  end
133
154
 
134
- it "should verify option is not selected" do
155
+ it 'should verify option is not selected' do
135
156
  test_page.input_checkbox_element.selected?.should be_false
136
157
  end
137
158
 
138
- it "should verify option is selected" do
159
+ it 'should verify option is selected' do
139
160
  test_page.input_checkbox_element.select
140
161
  test_page.input_checkbox_element.selected?.should be_true
141
162
  end
163
+
164
+ it 'should throw not visible error if element to select is not visible and ! is specified' do
165
+ expect {wait_element.not_visible.select!}.
166
+ to raise_exception(RuntimeError, "Locator at #{wait_element.not_visible.location.to_s} is not visible")
167
+ end
168
+
169
+ it 'should throw timeout error if element to select is not visible and ! is not specified' do
170
+ expect {wait_element.not_visible.select}.
171
+ to raise_exception(Selenium::WebDriver::Error::TimeOutError)
172
+ end
142
173
  end
143
174
 
144
175
 
145
176
  describe TextElementHelpers do
146
177
 
147
- it "should clear and write text" do
148
- text = "Hey buddy"
178
+ it 'should clear and write text' do
179
+ text = 'Hey buddy'
149
180
  test_page.textarea_element.send_keys(text)
150
181
  test_page.textarea_element.value.should == text
151
182
  end
152
183
 
153
- it "should write text without clearing" do
184
+ it 'should write text without clearing' do
154
185
  existing_text = "This is a textarea field.\n "
155
- new_text = "Hey buddy"
186
+ new_text = 'Hey buddy'
156
187
  test_page.textarea_element.send_keys!(new_text)
157
188
  test_page.textarea_element.value.should == existing_text+new_text
158
189
  end
159
190
  end
160
- end
191
+
192
+ describe ElementWaitHelpers do
193
+ class TestPage < PageObject
194
+ generic_element :not_a_element, {id: 'not a element'}
195
+ generic_element :not_visible, {id: 'not_visible'}
196
+ end
197
+
198
+ context 'With implicit waits' do
199
+ it 'should error immediately with traditional element check and implicit wait not set' do
200
+ start_time = Time.now
201
+ expect { driver.find_element(id: 'not a element') }.
202
+ to raise_exception(Selenium::WebDriver::Error::NoSuchElementError, 'The element could not be found')
203
+ (Time.now-start_time).should < 1
204
+ end
205
+
206
+ it 'should error after waiting the time set by implicit wait' do
207
+ driver.manage.timeouts.implicit_wait = 2
208
+
209
+ start_time = Time.now
210
+ expect { driver.find_element(id: 'not a element') }.
211
+ to raise_exception(Selenium::WebDriver::Error::NoSuchElementError, 'The element could not be found')
212
+ (Time.now-start_time).should > 2
213
+ end
214
+
215
+ it 'should ignore implicit wait for new element check, and reset wait after done' do
216
+ implicit_wait = 2
217
+ driver.manage.timeouts.implicit_wait = implicit_wait
218
+ test_element = test_page.not_a_element
219
+ test_element.implicit_wait = implicit_wait
220
+
221
+ start_time = Time.now
222
+ test_element.present?
223
+ (Time.now-start_time).should < 1
224
+
225
+ start_time = Time.now
226
+ expect { driver.find_element(id: 'not a element') }.
227
+ to raise_exception(Selenium::WebDriver::Error::NoSuchElementError, 'The element could not be found')
228
+ (Time.now-start_time).should > 2
229
+ end
230
+ end
231
+
232
+ context 'With explicit waits' do
233
+ it 'should wait for something with wait time and message parameters set' do
234
+ start_time = Time.now
235
+ begin
236
+ test_page.not_a_element.wait_for(timeout: 2, message: 'This is the message to return') { false }
237
+ raise 'This should have failed'
238
+ rescue Exception => e
239
+ e.message.should == 'This is the message to return'
240
+ time_taken = (Time.now-start_time)
241
+ time_taken.should > 2
242
+ time_taken.should < 10
243
+ end
244
+ end
245
+
246
+ it 'should wait for something with wait time set but no message' do
247
+ start_time = Time.now
248
+ begin
249
+ test_page.not_a_element.wait_for(timeout: 2) { false }
250
+ raise 'This should have failed'
251
+ rescue Exception => e
252
+ e.message.should == ''
253
+ time_taken = (Time.now-start_time)
254
+ time_taken.should > 2
255
+ time_taken.should < 10
256
+ end
257
+ end
258
+
259
+ it 'should wait for something with message parameters set but not wait time' do
260
+ start_time = Time.now
261
+ begin
262
+ test_page.not_a_element.wait_for(message: 'This is the message to return') { false }
263
+ raise 'This should have failed'
264
+ rescue Exception => e
265
+ e.message.should == 'This is the message to return'
266
+ (Time.now-start_time).should > 10
267
+ end
268
+ end
269
+
270
+ it 'should wait for something with no parameters set' do
271
+ start_time = Time.now
272
+ begin
273
+ test_page.not_a_element.wait_for { false }
274
+ raise 'This should have failed'
275
+ rescue Exception => e
276
+ e.message.should == ''
277
+ (Time.now-start_time).should > 10
278
+ end
279
+ end
280
+
281
+ it 'should return the value in of the condition' do
282
+ result = test_page.not_a_element.wait_for { true }
283
+ result.should be_a TrueClass
284
+ end
285
+
286
+ it 'should error on missing element if specify !' do
287
+ start_time = Time.now
288
+ expect { test_page.not_a_element.wait_visible! }.
289
+ to raise_exception(RuntimeError, "Locator at #{test_page.not_a_element.location.to_s} is not present")
290
+ (Time.now-start_time).should < 1
291
+ end
292
+
293
+ it 'should timeout without erroring on missing element if do not specify !' do
294
+ start_time = Time.now
295
+ expect { test_page.not_a_element.wait_visible(2) }.
296
+ to raise_exception(Selenium::WebDriver::Error::TimeOutError)
297
+ time_taken = (Time.now-start_time)
298
+ time_taken.should > 2
299
+ time_taken.should < 10
300
+ end
301
+
302
+ it 'should wait for element present and not visible for !' do
303
+ start_time = Time.now
304
+ expect { test_page.not_visible.wait_visible(2) }.
305
+ to raise_exception(Selenium::WebDriver::Error::TimeOutError)
306
+ time_taken = (Time.now-start_time)
307
+ time_taken.should > 2
308
+ time_taken.should < 10
309
+ end
310
+
311
+ it 'should wait for element present and not visible without !' do
312
+ start_time = Time.now
313
+ expect { test_page.not_visible.wait_visible(2) }.
314
+ to raise_exception(Selenium::WebDriver::Error::TimeOutError)
315
+ time_taken = (Time.now-start_time)
316
+ time_taken.should > 2
317
+ time_taken.should < 10
318
+ end
319
+ end
320
+ end
321
+ end
@@ -42,7 +42,7 @@ describe PageObject do
42
42
  launch_web_driver TEST_PAGE_URL
43
43
  test_page = TestPage.new(driver)
44
44
  test_page.class.elements.should_not be_nil
45
- test_page.class.elements.should have(37).elements
45
+ test_page.class.elements.should have(39).elements
46
46
  test_page.method(test_page.class.elements[0]).call.class.should == Selenium::WebDriver::Element
47
47
  end
48
48
 
@@ -34,6 +34,8 @@ class TestPage < PageObject
34
34
  image_element :input_image_element, {id: 'input_image'}
35
35
 
36
36
  link_element :link_element, {id: 'link111111'}
37
+ link_element :dynamic_locator_css, {css: "a[^locator$='link^id$']"}
38
+ link_element :dynamic_locator_id, {id: 'link^id$'}
37
39
 
38
40
  radio_button_element :input_radio_element, {id: 'input_radio'}
39
41
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: selenium_fury
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-05-31 00:00:00.000000000 Z
12
+ date: 2013-06-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: selenium-webdriver
@@ -116,7 +116,8 @@ extensions: []
116
116
  extra_rdoc_files: []
117
117
  files:
118
118
  - .gitignore
119
- - .rvmrc
119
+ - .ruby-gemset
120
+ - .ruby-version
120
121
  - Changelog.md
121
122
  - Gemfile
122
123
  - LICENSE
@@ -128,6 +129,7 @@ files:
128
129
  - features/support/env.rb
129
130
  - features/support/hooks.rb
130
131
  - features/validate_page_object.feature
132
+ - lib/selenium/webdriver/common/timeouts.rb
131
133
  - lib/selenium_fury.rb
132
134
  - lib/selenium_fury/common/page_parser.rb
133
135
  - lib/selenium_fury/selenium_web_driver/create_selenium_web_driver.rb
@@ -141,6 +143,7 @@ files:
141
143
  - lib/selenium_fury/version.rb
142
144
  - selenium_fury.gemspec
143
145
  - spec/common/page_parser_spec.rb
146
+ - spec/selenium/webdriver/common/timeouts_spec.rb
144
147
  - spec/selenium_web_driver/element_finder_spec.rb
145
148
  - spec/selenium_web_driver/generic_elements_spec.rb
146
149
  - spec/selenium_web_driver/page_generator_spec.rb
@@ -165,7 +168,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
165
168
  version: '0'
166
169
  segments:
167
170
  - 0
168
- hash: 417938360726335985
171
+ hash: -1088754158506320944
169
172
  required_rubygems_version: !ruby/object:Gem::Requirement
170
173
  none: false
171
174
  requirements:
@@ -174,7 +177,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
174
177
  version: '0'
175
178
  segments:
176
179
  - 0
177
- hash: 417938360726335985
180
+ hash: -1088754158506320944
178
181
  requirements: []
179
182
  rubyforge_project:
180
183
  rubygems_version: 1.8.25
@@ -189,6 +192,7 @@ test_files:
189
192
  - features/support/hooks.rb
190
193
  - features/validate_page_object.feature
191
194
  - spec/common/page_parser_spec.rb
195
+ - spec/selenium/webdriver/common/timeouts_spec.rb
192
196
  - spec/selenium_web_driver/element_finder_spec.rb
193
197
  - spec/selenium_web_driver/generic_elements_spec.rb
194
198
  - spec/selenium_web_driver/page_generator_spec.rb
data/.rvmrc DELETED
@@ -1,3 +0,0 @@
1
- rvm use ruby-1.9.3-p362@selenium_fury --create
2
-
3
-