spec/element_spec.rb in watir-6.10.0 vs spec/element_spec.rb in watir-6.10.1
- old
+ new
@@ -1,158 +1,158 @@
-require 'watirspec_helper'
-
-describe Watir::Element do
-
- describe '#present?' do
- before do
- browser.goto(WatirSpec.url_for("wait.html"))
- end
-
- it 'returns true if the element exists and is visible' do
- expect(browser.div(:id, 'foo')).to be_present
- end
-
- it 'returns false if the element exists but is not visible' do
- expect(browser.div(:id, 'bar')).to_not be_present
- end
-
- it 'returns false if the element does not exist' do
- expect(browser.div(:id, 'should-not-exist')).to_not be_present
- end
-
- it "returns false if the element is stale" do
- wd_element = browser.div(id: "foo").wd
-
- # simulate element going stale during lookup
- allow(browser.driver).to receive(:find_element).with(:id, 'foo') { wd_element }
- browser.refresh
-
- expect(browser.div(:id, 'foo')).to_not be_present
- end
-
- end
-
- describe "#enabled?" do
- before do
- browser.goto(WatirSpec.url_for("forms_with_input_elements.html"))
- end
-
- it "returns true if the element is enabled" do
- expect(browser.element(name: 'new_user_submit')).to be_enabled
- end
-
- it "returns false if the element is disabled" do
- expect(browser.element(name: 'new_user_submit_disabled')).to_not be_enabled
- end
-
- it "raises UnknownObjectException if the element doesn't exist" do
- expect { browser.element(name: "no_such_name").enabled? }.to raise_unknown_object_exception
- end
- end
-
- describe "#exists?" do
- before do
- browser.goto WatirSpec.url_for('removed_element.html')
- end
-
- it "relocates element from a collection when it becomes stale" do
- watir_element = browser.divs(id: "text").first
- expect(watir_element).to exist
-
- browser.refresh
-
- expect(watir_element).to exist
- end
-
- it "returns false when tag name does not match id" do
- watir_element = browser.span(id: "text")
- expect(watir_element).to_not exist
- end
- end
-
- describe "#element_call" do
-
- it 'handles exceptions when taking an action on an element that goes stale during execution' do
- browser.goto WatirSpec.url_for('removed_element.html')
-
- watir_element = browser.div(id: "text")
-
- # simulate element going stale after assert_exists and before action taken, but not when block retried
- allow(watir_element).to receive(:text) do
- watir_element.send(:element_call) do
- @already_stale ||= false
- browser.refresh unless @already_stale
- @already_stale = true
- watir_element.instance_variable_get('@element').text
- end
- end
-
- expect { watir_element.text }.to_not raise_error
- end
-
- end
-
- describe "#hover" do
- not_compliant_on :internet_explorer, :safari do
- it "should hover over the element" do
- browser.goto WatirSpec.url_for('hover.html')
- link = browser.a
-
- expect(link.style("font-size")).to eq "10px"
- link.hover
- link.wait_until { |l| l.style("font-size") == "20px" }
- expect(link.style("font-size")).to eq "20px"
- end
- end
- end
-
- describe "#inspect" do
- before(:each) { browser.goto(WatirSpec.url_for("nested_iframes.html")) }
-
- it "does displays specified element type" do
- expect(browser.div.inspect).to include('Watir::Div')
- end
-
- it "does not display element type if not specified" do
- element = browser.element(index: 4)
- expect(element.inspect).to include('Watir::HTMLElement')
- end
-
- it "displays keyword if specified" do
- element = browser.h3
- element.keyword = 'foo'
- expect(element.inspect).to include('keyword: foo')
- end
-
- it "does not display keyword if not specified" do
- element = browser.h3
- expect(element.inspect).to_not include('keyword')
- end
-
- it "locate is false when not located" do
- element = browser.div(:id, 'not_present')
- expect(element.inspect).to include('located: false')
- end
-
- it "locate is true when located" do
- element = browser.h3
- element.exists?
- expect(element.inspect).to include('located: true')
- end
-
- it "displays selector string for element from colection" do
- elements = browser.frames
- expect(elements.last.inspect).to include '{:tag_name=>"frame", :index=>-1}'
- end
-
- it "displays selector string for nested element" do
- browser.goto(WatirSpec.url_for("wait.html"))
- element = browser.div(index: 1).div(id: 'div2')
- expect(element.inspect).to include '{:index=>1, :tag_name=>"div"} --> {:id=>"div2", :tag_name=>"div"}'
- end
-
- it "displays selector string for nested element under frame" do
- element = browser.iframe(id: 'one').iframe(id: 'three')
- expect(element.inspect).to include '{:id=>"one", :tag_name=>"iframe"} --> {:id=>"three", :tag_name=>"iframe"}'
- end
- end
-end
+require 'watirspec_helper'
+
+describe Watir::Element do
+
+ describe '#present?' do
+ before do
+ browser.goto(WatirSpec.url_for("wait.html"))
+ end
+
+ it 'returns true if the element exists and is visible' do
+ expect(browser.div(:id, 'foo')).to be_present
+ end
+
+ it 'returns false if the element exists but is not visible' do
+ expect(browser.div(:id, 'bar')).to_not be_present
+ end
+
+ it 'returns false if the element does not exist' do
+ expect(browser.div(:id, 'should-not-exist')).to_not be_present
+ end
+
+ it "returns false if the element is stale" do
+ wd_element = browser.div(id: "foo").wd
+
+ # simulate element going stale during lookup
+ allow(browser.driver).to receive(:find_element).with(:id, 'foo') { wd_element }
+ browser.refresh
+
+ expect(browser.div(:id, 'foo')).to_not be_present
+ end
+
+ end
+
+ describe "#enabled?" do
+ before do
+ browser.goto(WatirSpec.url_for("forms_with_input_elements.html"))
+ end
+
+ it "returns true if the element is enabled" do
+ expect(browser.element(name: 'new_user_submit')).to be_enabled
+ end
+
+ it "returns false if the element is disabled" do
+ expect(browser.element(name: 'new_user_submit_disabled')).to_not be_enabled
+ end
+
+ it "raises UnknownObjectException if the element doesn't exist" do
+ expect { browser.element(name: "no_such_name").enabled? }.to raise_unknown_object_exception
+ end
+ end
+
+ describe "#exists?" do
+ before do
+ browser.goto WatirSpec.url_for('removed_element.html')
+ end
+
+ it "relocates element from a collection when it becomes stale" do
+ watir_element = browser.divs(id: "text").first
+ expect(watir_element).to exist
+
+ browser.refresh
+
+ expect(watir_element).to exist
+ end
+
+ it "returns false when tag name does not match id" do
+ watir_element = browser.span(id: "text")
+ expect(watir_element).to_not exist
+ end
+ end
+
+ describe "#element_call" do
+
+ it 'handles exceptions when taking an action on an element that goes stale during execution' do
+ browser.goto WatirSpec.url_for('removed_element.html')
+
+ watir_element = browser.div(id: "text")
+
+ # simulate element going stale after assert_exists and before action taken, but not when block retried
+ allow(watir_element).to receive(:text) do
+ watir_element.send(:element_call) do
+ @already_stale ||= false
+ browser.refresh unless @already_stale
+ @already_stale = true
+ watir_element.instance_variable_get('@element').text
+ end
+ end
+
+ expect { watir_element.text }.to_not raise_error
+ end
+
+ end
+
+ describe "#hover" do
+ not_compliant_on :internet_explorer, :safari do
+ it "should hover over the element" do
+ browser.goto WatirSpec.url_for('hover.html')
+ link = browser.a
+
+ expect(link.style("font-size")).to eq "10px"
+ link.hover
+ link.wait_until { |l| l.style("font-size") == "20px" }
+ expect(link.style("font-size")).to eq "20px"
+ end
+ end
+ end
+
+ describe "#inspect" do
+ before(:each) { browser.goto(WatirSpec.url_for("nested_iframes.html")) }
+
+ it "does displays specified element type" do
+ expect(browser.div.inspect).to include('Watir::Div')
+ end
+
+ it "does not display element type if not specified" do
+ element = browser.element(index: 4)
+ expect(element.inspect).to include('Watir::HTMLElement')
+ end
+
+ it "displays keyword if specified" do
+ element = browser.h3
+ element.keyword = 'foo'
+ expect(element.inspect).to include('keyword: foo')
+ end
+
+ it "does not display keyword if not specified" do
+ element = browser.h3
+ expect(element.inspect).to_not include('keyword')
+ end
+
+ it "locate is false when not located" do
+ element = browser.div(:id, 'not_present')
+ expect(element.inspect).to include('located: false')
+ end
+
+ it "locate is true when located" do
+ element = browser.h3
+ element.exists?
+ expect(element.inspect).to include('located: true')
+ end
+
+ it "displays selector string for element from colection" do
+ elements = browser.frames
+ expect(elements.last.inspect).to include '{:tag_name=>"frame", :index=>-1}'
+ end
+
+ it "displays selector string for nested element" do
+ browser.goto(WatirSpec.url_for("wait.html"))
+ element = browser.div(index: 1).div(id: 'div2')
+ expect(element.inspect).to include '{:index=>1, :tag_name=>"div"} --> {:id=>"div2", :tag_name=>"div"}'
+ end
+
+ it "displays selector string for nested element under frame" do
+ element = browser.iframe(id: 'one').iframe(id: 'three')
+ expect(element.inspect).to include '{:id=>"one", :tag_name=>"iframe"} --> {:id=>"three", :tag_name=>"iframe"}'
+ end
+ end
+end