watir-webdriver 0.6.10 → 0.6.11

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 89a38c59a99607faba5d3d114200e4a61fa1219b
4
- data.tar.gz: 2e1564d5123f22ddadb7f9e74246e7dc64b5cfa1
3
+ metadata.gz: f701ec966d5fba22ef3505c0df91d8db1581b04e
4
+ data.tar.gz: c5002bc487ed49c06385469e0b531b23ecd6b11b
5
5
  SHA512:
6
- metadata.gz: b3aa6a03d9ae4412ff5038902c599c07f89050bdc8e7b4baf9270cdcb0e13bb205ed2be7d03de268a5defcaf9fd148f0fc37641d9e862873e3c87a2d9e295ea7
7
- data.tar.gz: 17432f8a591e0a2d78a76a53e40d090e1f45f2cb7008f58e0d8fabb569bffed648f31ada6abdf7d0e3f343e304d04fa43d44807b02a2800d0f5e202842510477
6
+ metadata.gz: ad1194e189f237e24d3ff125332b038ca9361ed427d5dd51c15c61da29c9d7da24cd5a3df8303434d1eeea4f0d622e82a7d8932dd1510966a4763e2878a19047
7
+ data.tar.gz: 79f65f913cc04a54ed1a5f25a4717bbed04ba1a3529679c9647a40d752491f17cdb96b24254584def0a78b6af1b6ece720e602b5111317fe4fb71ede41540e06
data/CHANGES.md CHANGED
@@ -1,3 +1,8 @@
1
+ ### 0.6.11 (2014-09-23)
2
+
3
+ * Fix namespacing issue (#265, thanks @titusfortner)
4
+ * Fix handling of elements that go stale during lookup (#271, thanks @titusfortner)
5
+
1
6
  ### 0.6.10 (2014-06-10)
2
7
 
3
8
  * Changed the way attributes are generated and documented (see #28 and #215)
data/README.md CHANGED
@@ -2,7 +2,7 @@ watir-webdriver
2
2
  ===============
3
3
 
4
4
  Watir implementation built on WebDriver's Ruby bindings.
5
- See http://rubyforge.org/pipermail/wtr-development/2009-October/001313.html.
5
+ See https://web.archive.org/web/20140518221755/http://rubyforge.org/pipermail/wtr-development/2009-October/001313.html
6
6
 
7
7
  [![Gem Version](https://badge.fury.io/rb/watir-webdriver.png)](http://badge.fury.io/rb/watir-webdriver)
8
8
  [![Build Status](https://travis-ci.org/watir/watir-webdriver.png?branch=master)](https://travis-ci.org/watir/watir-webdriver)
@@ -49,11 +49,9 @@ module Watir
49
49
 
50
50
  private
51
51
 
52
- def locate
53
- @parent.assert_exists
54
- ButtonLocator.new(@parent.wd, @selector, self.class.attribute_list).locate
52
+ def locator_class
53
+ ButtonLocator
55
54
  end
56
-
57
55
  end # Button
58
56
 
59
57
  class ButtonCollection < ElementCollection
@@ -502,10 +502,16 @@ module Watir
502
502
  return
503
503
  end
504
504
 
505
- @element = (@selector[:element] || locate)
505
+ @element = @selector[:element]
506
506
 
507
- unless @element
508
- raise UnknownObjectException, "unable to locate element, using #{selector_string}"
507
+ if @element
508
+ assert_not_stale
509
+ else
510
+ @element = locate
511
+
512
+ unless @element
513
+ raise UnknownObjectException, "unable to locate element, using #{selector_string}"
514
+ end
509
515
  end
510
516
  end
511
517
 
@@ -139,7 +139,7 @@ module Watir
139
139
  def switch!
140
140
  @driver.switch_to.frame @element
141
141
  rescue Selenium::WebDriver::Error::NoSuchFrameError => e
142
- raise UnknownFrameException, e.message
142
+ raise Exception::UnknownFrameException, e.message
143
143
  end
144
144
 
145
145
  end # FramedDriver
@@ -39,7 +39,7 @@ module Watir
39
39
  # It is also used to alter behavior of methods locating more than one type of element
40
40
  # (e.g. text_field locates both input and textarea)
41
41
  validate_element(element) if element
42
- rescue Selenium::WebDriver::Error::NoSuchElementError
42
+ rescue Selenium::WebDriver::Error::NoSuchElementError, Selenium::WebDriver::Error::ObsoleteElementError
43
43
  nil
44
44
  end
45
45
 
@@ -1,3 +1,3 @@
1
1
  module Watir
2
- VERSION = "0.6.10"
2
+ VERSION = "0.6.11"
3
3
  end
@@ -31,9 +31,11 @@ describe Watir::Element do
31
31
  end
32
32
 
33
33
  describe "#exists?" do
34
- it "should not propagate ObsoleteElementErrors" do
34
+ before do
35
35
  browser.goto WatirSpec.url_for('removed_element.html', :needs_server => true)
36
+ end
36
37
 
38
+ it "should not propagate ObsoleteElementErrors" do
37
39
  button = browser.button(:id => "remove-button")
38
40
  element = browser.div(:id => "text")
39
41
 
@@ -41,6 +43,26 @@ describe Watir::Element do
41
43
  button.click
42
44
  expect(element).to_not exist
43
45
  end
46
+
47
+ it "should determine if element constructed with WebDriver element is stale" do
48
+ button = browser.button(:id => "remove-button")
49
+ text = browser.element(:element, browser.div(:id => "text").wd)
50
+
51
+ expect(text).to exist
52
+ button.click
53
+ expect(text).to_not exist
54
+ end
55
+
56
+ it "should handle element that becomes stale during lookup" do
57
+ wd_element = browser.div(:id => "text").wd
58
+
59
+ # simulate element going stale during lookup
60
+ allow(browser.driver).to receive(:find_element).with(:id, 'text') { wd_element }
61
+ browser.refresh
62
+
63
+ expect(browser.div(:id, 'text')).to_not exist
64
+ end
65
+
44
66
  end
45
67
 
46
68
  describe "#hover" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: watir-webdriver
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.10
4
+ version: 0.6.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jari Bakken
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-10 00:00:00.000000000 Z
11
+ date: 2014-09-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: selenium-webdriver