selenium_fury 0.5.12 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. data/.rvmrc +2 -7
  2. data/Gemfile +1 -1
  3. data/VERSION +1 -1
  4. data/features/custom_generator.feature +1 -1
  5. data/features/generate_page_object.feature +1 -1
  6. data/features/step_definitions/custom_generator_steps.rb +81 -125
  7. data/features/step_definitions/generate_page_object_steps.rb +3 -3
  8. data/features/step_definitions/validate_page_object_steps.rb +4 -4
  9. data/features/support/env.rb +10 -4
  10. data/features/support/hooks.rb +2 -1
  11. data/features/validate_page_object.feature +3 -3
  12. data/lib/selenium_fury.rb +3 -4
  13. data/lib/selenium_fury/common/selenium_api_chooser.rb +19 -7
  14. data/lib/selenium_fury/selenium_client/locator_finder.rb +15 -0
  15. data/lib/selenium_fury/selenium_client/page_generator.rb +1 -0
  16. data/lib/selenium_fury/selenium_client/page_validator.rb +12 -37
  17. data/lib/selenium_fury/selenium_web_driver/element_finder.rb +16 -1
  18. data/lib/selenium_fury/selenium_web_driver/page_object.rb +2 -2
  19. data/lib/selenium_fury/selenium_web_driver/page_object_components.rb +1 -1
  20. data/spec/common/selenium_api_chooser_spec.rb +11 -11
  21. data/spec/selenium_client/custom_generators_spec.rb +23 -7
  22. data/spec/selenium_client/page_generator_spec.rb +3 -3
  23. data/spec/selenium_client/page_validator_spec.rb +5 -5
  24. data/spec/selenium_client/test_page_rc_spec.rb +14 -0
  25. data/spec/selenium_web_driver/element_finder_spec.rb +1 -1
  26. data/spec/selenium_web_driver/page_generator_spec.rb +10 -10
  27. data/spec/selenium_web_driver/page_object_spec.rb +69 -40
  28. data/spec/selenium_web_driver/page_validator_spec.rb +5 -5
  29. data/spec/spec_helper.rb +13 -12
  30. data/spec/test_page/test_page.html +70 -0
  31. data/spec/test_page/test_page.rb +21 -0
  32. data/spec/test_page/test_page_custom_generator_configuration.rb +16 -0
  33. data/spec/test_page/test_page_rc.rb +25 -0
  34. metadata +194 -181
  35. data/selenium_fury.gemspec +0 -118
  36. data/spec/selenium_client/advanced_search.rb +0 -55
  37. data/spec/selenium_client/advanced_search_custom_generator_configuration.rb +0 -16
  38. data/spec/selenium_client/advanced_search_spec.rb +0 -15
  39. data/spec/selenium_web_driver/advanced_search.rb +0 -47
  40. data/spec/selenium_web_driver/inquiry_side_bar.rb +0 -7
  41. data/spec/selenium_web_driver/property_page.rb +0 -3
@@ -20,7 +20,7 @@ module SeleniumFury
20
20
  attr_accessor :found_missing_locators
21
21
  # @param page_file_class [Class] The page object class you want to test
22
22
  # @param live_url [String] the url of the page your testing
23
- def check_page_file_class(page_file_class, *live_url)
23
+ def check_page_file_class(page_file_class, live_url = nil)
24
24
  raise "cannot access the selenium client driver" if browser.nil?
25
25
  missing_locators={}
26
26
  puts "Validating the #{page_file_class} class"
@@ -28,16 +28,14 @@ module SeleniumFury
28
28
  test_page = page_file_class.new(browser)
29
29
  raise "The test class is nil" if test_page.nil?
30
30
  #skip the open if we don't need to open the url again
31
- unless live_url.empty?
31
+ if live_url
32
32
  puts "Opening #{browser.browser_url}/#{live_url}" #if $DEBUG
33
33
  browser.open live_url
34
34
  end
35
35
 
36
- #check for class methods and execute.
37
- verify_class_variables(test_page, missing_locators) if test_page.public_methods(all=false).length > 0
38
-
39
36
  #check for instance methods and execute.
40
37
  verify_instance_variables(test_page, missing_locators) if test_page.instance_variables.length > 0
38
+
41
39
  @found_missing_locators=missing_locators
42
40
  return print_missing_locators(missing_locators)
43
41
  end
@@ -66,48 +64,25 @@ module SeleniumFury
66
64
  def verify_instance_variables(test_page, missing_locators)
67
65
  #test_page.print_properties browser
68
66
  test_page.instance_variables.each do |locator_name|
67
+ locator_name_string = locator_name.to_s
69
68
  #prepare the locator values
70
- locator_name.slice!(0)
71
- if attribute_name_filter(locator_name)
72
- puts "Skipping validation for #{locator_name}"
73
- next
74
- end
75
- next if (test_page.method(locator_name).call.class.to_s != "String")
76
- puts " Validating the #{locator_name} page element locator" #chomp the @ sign off of the method name.
77
- locator_value = test_page.method(locator_name) # Create the reference to the get method of the instance variable
78
- begin
79
- browser.wait_for_element(locator_value.call, {:timeout_in_seconds => "5"})
80
- rescue
81
- puts " ----------------------------------- Could not find '#{locator_name}'"
82
- end
83
- missing_locators[locator_name]= locator_value.call if !browser.element?(locator_value.call) # Use the value of the instance variable
84
- end
85
- end
86
-
87
- # @param test_page [Object] an instantiated page object
88
- # @param missing_locators [Hash]
89
- def verify_class_variables(test_page, missing_locators)
90
- test_page.public_methods(all=false).each do |locator_name|
91
- #Only operate with the set methods not the get methods
92
- next if (!locator_name.include?("="))
93
-
94
- locator_name.slice!(locator_name.length-1)
69
+ locator_name_string.slice!(0)
95
70
 
96
- if attribute_name_filter(locator_name)
71
+ if attribute_name_filter(locator_name_string)
97
72
  puts "Skipping validation for #{locator_name}"
98
73
  next
99
74
  end
100
- next if (test_page.method(locator_name).call.class.to_s != "String")
75
+
76
+ # I don't understand where this would ever be true, but I'll leave it I guess?
77
+ # next if (test_page.method(locator_name_string.to_sym).class.to_s != "String")
101
78
  puts " Validating the #{locator_name} page element locator" #chomp the @ sign off of the method name.
102
- locator_value = test_page.method(locator_name) # Create the reference to the get method of the instance variable
103
- #Now validate the page
79
+ locator_value = test_page.method(locator_name_string.to_sym) # Create the reference to the get method of the instance variable
104
80
  begin
105
81
  browser.wait_for_element(locator_value.call, {:timeout_in_seconds => "5"})
106
82
  rescue
107
- puts " ----------------------------------- Could not find #{locator_name}"
83
+ puts " ----------------------------------- Could not find '#{locator_name}'"
84
+ missing_locators[locator_name_string]= locator_value.call
108
85
  end
109
- missing_locators[locator_name]= locator_value.call if !browser.element?(locator_value.call) # Use the value of the instance variable
110
-
111
86
  end
112
87
  end
113
88
 
@@ -1,3 +1,18 @@
1
+ #/* Copyright (c) 2010 HomeAway, Inc.
2
+ # * All rights reserved. http://www.homeaway.com
3
+ # *
4
+ # * Licensed under the Apache License, Version 2.0 (the "License");
5
+ # * you may not use this file except in compliance with the License.
6
+ # * You may obtain a copy of the License at
7
+ # *
8
+ # * http://www.apache.org/licenses/LICENSE-2.0
9
+ # *
10
+ # * Unless required by applicable law or agreed to in writing, software
11
+ # * distributed under the License is distributed on an "AS IS" BASIS,
12
+ # * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # * See the License for the specific language governing permissions and
14
+ # * limitations under the License.
15
+ # */
1
16
  module SeleniumFury
2
17
  module SeleniumWebDriver
3
18
  class ElementFinder
@@ -13,7 +28,7 @@ module SeleniumFury
13
28
  nokogiri_elements.each do |nokogiri_element|
14
29
  valid_locators.each do |valid_locator|
15
30
  if nokogiri_element.get_attribute(valid_locator) != nil
16
- locators.push({valid_locator.to_sym, nokogiri_element.get_attribute(valid_locator)})
31
+ locators.push({valid_locator.to_sym => nokogiri_element.get_attribute(valid_locator)})
17
32
  break
18
33
  end
19
34
  end
@@ -18,8 +18,8 @@ class PageObject
18
18
  include SeleniumFury::SeleniumWebDriver::PageObjectComponents
19
19
  include SeleniumFury::SeleniumWebDriver::CreateSeleniumWebDriver
20
20
 
21
- def initialize *driver
22
- @driver = *driver
21
+ def initialize driver = nil
22
+ @driver = driver
23
23
  end
24
24
 
25
25
  end
@@ -57,7 +57,7 @@ module SeleniumFury
57
57
  # @return [PageObject]
58
58
  def page(page_sym, page_class)
59
59
  send :define_method, page_sym do
60
- raise "#{page_class} does not inherit from PageObject" unless page_class.superclass == PageObject
60
+ raise "#{page_class.to_s} does not inherit from PageObject" unless page_class.superclass == PageObject
61
61
  page_class.new(driver)
62
62
  end
63
63
  end
@@ -2,38 +2,38 @@ require 'spec_helper'
2
2
  describe SeleniumFury::SeleniumApiChooser do
3
3
  context "Finding generate/validate methods" do
4
4
  it "should find the generator for selenium client tests" do
5
- create_selenium_client_driver "http://www.scottcsims.com"
5
+ create_selenium_client_driver TEST_PAGE_URL
6
6
  should_receive(:get_source_and_print_elements)
7
7
  generate(browser)
8
8
  end
9
9
  it "should find the generator for selenium web_driver tests" do
10
- launch_web_driver "http://www.scottcsims.com"
10
+ launch_web_driver TEST_PAGE_URL
11
11
  should_receive(:web_driver_generate)
12
12
  generate(driver)
13
13
  end
14
14
  it "should find the validator for selenium client tests" do
15
- create_selenium_client_driver "http://www.scottcsims.com"
16
- should_receive(:check_page_file_class).with(NilClass)
17
- validate(NilClass)
15
+ create_selenium_client_driver TEST_PAGE_URL
16
+ should_receive(:check_page_file_class).with(NilClass, nil)
17
+ validate(NilClass, nil)
18
18
  end
19
19
  it "should find the validator for selenium web driver tests" do
20
- launch_web_driver "http://www.scottcsims.com"
20
+ launch_web_driver TEST_PAGE_URL
21
21
  should_receive(:web_driver_validate).with(NilClass)
22
22
  validate(NilClass)
23
23
  end
24
24
  end
25
25
  context "Integrating with generator/validator methods" do
26
26
  it "should find generate method for selenium client tests" do
27
- create_selenium_driver "http://www.scottcsims.com"
27
+ create_selenium_driver TEST_PAGE_URL
28
28
  browser.start_new_browser_session
29
- browser.open "/"
30
- generate(browser).should include("found (9 elements)")
29
+ browser.open TEST_PAGE_URL
30
+ generate(browser).should include("found (15 elements)")
31
31
  end
32
32
  it "should find validate method for selenium client tests" do
33
- create_selenium_driver("http://www.homeaway.com")
33
+ create_selenium_driver TEST_PAGE_URL
34
34
  browser.start_new_browser_session
35
35
  puts "Testing #{browser.browser_url} on #{browser.browser_string} "
36
- validate(AdvancedSearch, "/searchForm")
36
+ validate(TestPageRc, TEST_PAGE_URL)
37
37
  end
38
38
  it "should have found missing locators in module", SeleniumFury::SeleniumApiChooser do
39
39
  SeleniumFury::SeleniumClient::PageValidator.respond_to?(:found_missing_locators).should be_true
@@ -1,13 +1,29 @@
1
1
  require "spec_helper"
2
- describe AdvancedSearchCustomGeneratorConfiguration do
3
- it "should generate the advanced search locators" do
4
- create_selenium_driver("http://www.homeaway.com")
2
+ describe TestPageCustomGeneratorConfiguration do
3
+
4
+ it "should generate the test page link locators" do
5
+ create_selenium_driver TEST_PAGE_URL
5
6
  browser.start_new_browser_session
6
7
  puts "Testing #{browser.browser_url} on #{browser.browser_string} "
7
- browser.open "/searchForm"
8
- advanced_search_custom_generator_configuration = AdvancedSearchCustomGeneratorConfiguration.new
8
+ browser.open TEST_PAGE_URL
9
+ test_page_custom_generator_configuration = TestPageCustomGeneratorConfiguration.new
9
10
  result = custom_generator(:browser => browser,
10
- :custom_configuration => advanced_search_custom_generator_configuration)
11
- result.should include("found (30 elements)")
11
+ :custom_configuration => test_page_custom_generator_configuration)
12
+ result.should == custom_generator_result
12
13
  end
14
+ let(:custom_generator_result){
15
+ <<EOF
16
+ found (3 elements)
17
+ class YourPageFile
18
+ def initialize *browser
19
+ @browser = *browser
20
+ @link_1 = "link111111"
21
+ @link_2 = "link222222"
22
+ @link_3 = "link333333"
23
+ end
24
+ attr_accessor :browser, :link_1, :link_2, :link_3
25
+
26
+ end
27
+ EOF
28
+ }
13
29
  end
@@ -1,11 +1,11 @@
1
1
  require "spec_helper"
2
2
  describe SeleniumFury::SeleniumClient::PageGenerator do
3
3
  it "should find elements on the HomeAway advanced search page" do
4
- create_selenium_driver("http://www.homeaway.com")
4
+ create_selenium_driver TEST_PAGE_URL
5
5
  browser.start_new_browser_session
6
6
  puts "Testing #{browser.browser_url} on #{browser.browser_string} "
7
- browser.open "/searchForm"
7
+ browser.open TEST_PAGE_URL
8
8
  result = generate(browser)
9
- result.should include("found (43 elements)")
9
+ result.should include("found (15 elements)")
10
10
  end
11
11
  end
@@ -1,14 +1,14 @@
1
1
  require "spec_helper"
2
2
  describe SeleniumFury::SeleniumClient::PageValidator do
3
- it "should validate the elements contained on the AdvancedSearch page object" do
4
- create_selenium_driver("http://www.homeaway.com")
3
+ it "should validate the elements contained on the TestPage page object" do
4
+ create_selenium_driver TEST_PAGE_URL
5
5
  browser.start_new_browser_session
6
- validate(AdvancedSearch, "/searchForm")
6
+ validate(TestPageRc, TEST_PAGE_URL)
7
7
  @found_missing_locators.should_not be_nil
8
8
  @found_missing_locators.should have(0).missing_locators
9
9
  end
10
10
  it "should fail if there are missing locators" do
11
- create_selenium_driver("http://www.homeaway.com")
11
+ create_selenium_driver TEST_PAGE_URL
12
12
  class MissingLocators
13
13
  def initialize *browser
14
14
  @browser=browser
@@ -19,7 +19,7 @@ describe SeleniumFury::SeleniumClient::PageValidator do
19
19
  end
20
20
  browser.start_new_browser_session
21
21
  begin
22
- validate(MissingLocators, browser, "/searchForm")
22
+ validate(MissingLocators, TEST_PAGE_URL)
23
23
  rescue Exception => e
24
24
  puts e.message.should include("found missing locators")
25
25
  @found_missing_locators["missing"].should =="missing_id"
@@ -0,0 +1,14 @@
1
+ require "spec_helper"
2
+ describe TestPageRc do
3
+ it "should use elements on the TestPageRc" do
4
+ create_selenium_driver TEST_PAGE_URL
5
+ browser.start_new_browser_session
6
+ puts "Testing #{browser.browser_url} on #{browser.browser_string} "
7
+ browser.open TEST_PAGE_URL
8
+ test_page = TestPageRc.new(browser)
9
+ browser.click test_page.input_message
10
+ browser.type test_page.input_message, "this is awesome"
11
+ browser.click test_page.input_msg_button
12
+ browser.text("message").should == "this is awesome"
13
+ end
14
+ end
@@ -1,4 +1,4 @@
1
- require "spec_helper"
1
+ require 'spec_helper'
2
2
  describe SeleniumFury::SeleniumWebDriver::ElementFinder do
3
3
  it "should find elements" do
4
4
  html="<input id='myTestId1'><input name='myTestId2'>"
@@ -1,15 +1,15 @@
1
- require "spec_helper"
1
+ require 'spec_helper'
2
2
  describe SeleniumFury::SeleniumWebDriver::PageGenerator do
3
- it "should find elements on the HomeAway advanced search page" do
4
- launch_web_driver("http://www.homeaway.com/searchForm")
3
+ it "should find elements on the Test page" do
4
+ launch_web_driver TEST_PAGE_URL
5
5
  result = generate(driver)
6
- result.should include("found (43 elements)")
7
- result.should include("element :adv_search_form, {:id => \"adv-search-form\"}")
6
+ result.should include 'found (15 elements)'
7
+ result.should include 'element :form, {:id => "form"}'
8
8
  end
9
- it "should return a page object" do
10
- launch_web_driver("http://www.homeaway.com/searchForm")
11
- search_form = get_page_object(driver,"SearchForm")
12
- search_form.should be_instance_of SearchForm
13
- search_form.special_offers.should be_instance_of Selenium::WebDriver::Element
9
+ it "should return a TestPage page object" do
10
+ launch_web_driver TEST_PAGE_URL
11
+ test_page = get_page_object driver, "TestPage"
12
+ test_page.should be_instance_of TestPage
13
+ test_page.input_button.should be_instance_of Selenium::WebDriver::Element
14
14
  end
15
15
  end
@@ -1,55 +1,84 @@
1
1
  require 'spec_helper'
2
- describe PageObject do
2
+ describe SeleniumFury::SeleniumWebDriver::CreateSeleniumWebDriver do
3
+ it "should go to page using launch_web_driver" do
4
+ launch_web_driver TEST_PAGE_URL
5
+ driver.current_url.should include "/spec/test_page/test_page.html"
6
+ driver.title.should == "SeleniumFury Test Page"
7
+ end
8
+ end
3
9
 
4
- it "should go to the home page using launch site" do
5
- launch_web_driver "http://www.scottcsims.com"
6
- driver.current_url.should == "http://scottcsims.com/wordpress/"
7
- driver.navigate.to "http://www.scottcsims"
8
- driver.title.should == "Scott Sims"
10
+ describe PageObject do
11
+ it "should have a text area method on the test page" do
12
+ launch_web_driver TEST_PAGE_URL
13
+ test_page = TestPage.new(driver)
14
+ test_page.should_not be_nil
15
+ test_page.textarea.should be_a(Selenium::WebDriver::Element)
9
16
  end
10
- it "should have elements" do
11
- launch_web_driver "http://www.homeaway.com"
12
- search=get_page_object(driver, 'Search')
13
- search.class.elements.should_not be_nil
14
- search.class.elements.should have(8).elements
15
- search.method(search.class.elements[0]).call.class.should == Selenium::WebDriver::Element
17
+ it "should have a test page" do
18
+ class ComponentPage < PageObject
19
+
20
+ end
21
+ TestPage.page(:component_page, ComponentPage)
22
+ TestPage.new().component_page.should be_a(ComponentPage)
16
23
  end
17
- it 'should return a web_driver element when an attribute is accessed' do
18
- launch_web_driver "http://www.homeaway.com"
19
- search=get_page_object(driver, 'Search')
20
- search.start_date_input.class.should == Selenium::WebDriver::Element
21
- search.search_keywords Faker::Lorem.words
24
+
25
+ it "should have an error if a non page object class is passed to page method" do
26
+ TestPage.page(:not_a_page, String)
27
+ expect { TestPage.new().not_a_page }.to(raise_exception(RuntimeError, "String does not inherit from PageObject"))
22
28
  end
23
29
 
24
- it "should raise an exception when the element can't be found'" do
25
- launch_web_driver "http://www.homeaway.com"
26
- search=get_page_object(driver, 'Search')
27
- Search.element(:not_a_element, {:id =>"not a element"})
28
- lambda{search.not_a_element}.should(raise_exception(RuntimeError,"Could not find element not_a_element"))
30
+ it "should use elements on the TestPage" do
31
+ launch_web_driver TEST_PAGE_URL
32
+ test_page = TestPage.new(driver)
33
+ test_page.input_message.send_keys "this is awesome"
34
+ test_page.input_msg_button.click
35
+ driver.find_element(:id => "message").text.should == "this is awesome"
29
36
  end
30
37
 
31
- it "should have a property page that contains a inquiry sidebar" do
32
- launch_web_driver "http://www.homeaway.com/vacation-rental/p254680"
33
- property_page = PropertyPage.new(driver)
34
- property_page.should_not be_nil
35
- property_page.inquiry_side_bar.should_not be_nil
38
+ it "should use some methods man" do
39
+ launch_web_driver TEST_PAGE_URL
40
+ test_page = TestPage.new(driver)
41
+ test_page.click_check_box
42
+ driver.find_element(:id => "input_checkbox").selected?.should be_true
36
43
  end
37
44
 
38
- it "should have an error if a non page object class is passed to page method" do
39
- property_page = PropertyPage.new()
40
- PropertyPage.page(:not_a_page, String)
41
- lambda{property_page.not_a_page}.should raise_exception(RuntimeError,"String does not inherit from PageObject")
45
+ # OK, so here's some great info about the "magic" behind ruby.
46
+ # When ruby spins up, an Object class is created, and everything runs "inside" it
47
+ # When you do code like this: TestPage.new() an instance of TestPage is added as a constant
48
+ # to the instance of this "global" Object class
49
+ # Therefore, since rspec is running "inside" this Object Class, an instance of TestPage is
50
+ # instantiated and shared from test to test, BUT when you do get_page_object, an instance
51
+ # of the page object must be created and added as a constant, but if it already exists,
52
+ # you're gonna have bad time. Therefore, for testing sake, we must check for this,
53
+ # and handle it appropriately.
54
+ #
55
+ # It should also be noted that get_page_object only adds page elements to the class
56
+ # and currently doesn't look for a pre-defined page object in the project
57
+
58
+ it "should have elements" do
59
+ Object.instance_eval { remove_const :TestPage } if Object.const_defined? :TestPage
60
+ launch_web_driver TEST_PAGE_URL
61
+ test_page = get_page_object(driver, 'TestPage')
62
+ test_page.class.elements.should_not be_nil
63
+ test_page.class.elements.should have(15).elements
64
+ test_page.method(test_page.class.elements[0]).call.class.should == Selenium::WebDriver::Element
65
+ Object.instance_eval { remove_const :TestPage }
42
66
  end
43
- it "should use elements on the HomeAway advanced search page" do
44
- launch_web_driver("http://www.homeaway.com/searchForm")
45
- advanced_search = AdvancedSearchWebDriver.new(driver)
46
- advanced_search.amenity0_0.click
47
- advanced_search.adv_search_form.submit
67
+ it "should return a web_driver element when an attribute is accessed" do
68
+ Object.instance_eval { remove_const :TestPage } if Object.const_defined? :TestPage
69
+ launch_web_driver TEST_PAGE_URL
70
+ test_page = get_page_object(driver, 'TestPage')
71
+ test_page.textarea.class.should == Selenium::WebDriver::Element
72
+ Object.instance_eval { remove_const :TestPage }
48
73
  end
49
74
 
50
- it "should use methods on the HomeAway advanced search page" do
51
- launch_web_driver("http://www.homeaway.com/searchForm")
52
- advanced_search = AdvancedSearchWebDriver.new(driver)
53
- advanced_search.click_one_item
75
+ it "should raise an exception when the element can't be found'" do
76
+ Object.instance_eval { remove_const :TestPage } if Object.const_defined? :TestPage
77
+ launch_web_driver TEST_PAGE_URL
78
+ test_page = get_page_object(driver, 'TestPage')
79
+ TestPage.element :not_a_element, {:id => "not a element"}
80
+ expect { test_page.not_a_element }.to raise_exception RuntimeError, "Could not find element not_a_element"
81
+ Object.instance_eval { remove_const :TestPage }
54
82
  end
83
+
55
84
  end
@@ -1,4 +1,4 @@
1
- require "spec_helper"
1
+ require 'spec_helper'
2
2
  describe SeleniumFury::SeleniumWebDriver::PageValidator do
3
3
 
4
4
  it "should have a missing element exception" do
@@ -6,13 +6,13 @@ describe SeleniumFury::SeleniumWebDriver::PageValidator do
6
6
  element :not_a_element1, {:id=>"not a element1"}
7
7
  element :not_a_element2, {:id=>"not a element2"}
8
8
  end
9
- launch_web_driver("http://www.homeaway.com/searchForm")
10
- lambda{web_driver_validate(MissingElement)}.should raise_exception(RuntimeError,"Found Missing Elements: [:not_a_element1, :not_a_element2]")
9
+ launch_web_driver TEST_PAGE_URL
10
+ expect{web_driver_validate(MissingElement)}.to raise_exception RuntimeError,"Found Missing Elements: [:not_a_element1, :not_a_element2]"
11
11
  end
12
12
 
13
13
  it "should validate elements" do
14
- launch_web_driver("http://www.homeaway.com/searchForm")
15
- validate(AdvancedSearchWebDriver)
14
+ launch_web_driver TEST_PAGE_URL
15
+ validate TestPage
16
16
  end
17
17
 
18
18
  end