watir-webdriver 0.6.10 → 0.6.11

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 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