selenium_fury 0.5.8 → 0.5.9
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.
- data/Changelog.md +22 -2
- data/Gemfile +1 -1
- data/README.md +38 -23
- data/VERSION +1 -1
- data/lib/selenium_fury.rb +1 -0
- data/lib/selenium_fury/common/selenium_api_chooser.rb +3 -3
- data/lib/selenium_fury/selenium_web_driver/page_validator.rb +1 -0
- data/selenium_fury.gemspec +5 -5
- data/spec/common/selenium_api_chooser_spec.rb +4 -5
- data/spec/selenium_client/page_validator_spec.rb +2 -2
- data/spec/selenium_web_driver/page_validator_spec.rb +2 -6
- data/spec/spec_helper.rb +2 -3
- metadata +9 -7
data/Changelog.md
CHANGED
@@ -1,17 +1,37 @@
|
|
1
|
+
###v0.5.9
|
2
|
+
####Enhancements
|
3
|
+
|
4
|
+
* Bug fix for validate() when using web driver
|
5
|
+
|
6
|
+
[full changelog](https://github.com/scottcsims/SeleniumFury/compare/v0.5.8...v0.5.9)
|
7
|
+
###v0.5.8
|
8
|
+
####Enhancements
|
9
|
+
|
10
|
+
* New method get_page_object creates a page object instance populated with elements found on the current page
|
11
|
+
|
12
|
+
[full changelog](https://github.com/scottcsims/SeleniumFury/compare/v0.5.7...v0.5.8)
|
13
|
+
|
14
|
+
###v0.5.7
|
15
|
+
####Enhancements
|
16
|
+
|
17
|
+
* WebDriver support
|
18
|
+
* WebDriver PageObject class. Specify your webdriver elements with the element() method.
|
19
|
+
* WebDriver generate() and validate()
|
20
|
+
|
21
|
+
[full changelog](https://github.com/scottcsims/SeleniumFury/compare/v0.5.2...v0.5.7)
|
22
|
+
|
1
23
|
###v0.5.2
|
2
24
|
####Enhancements
|
3
25
|
|
4
26
|
* Adding the custom generator and cucumber features to the project.
|
5
27
|
* Tests now execute against HomeAway.
|
6
28
|
|
7
|
-
[full changelog](https://github.com/scottcsims/SeleniumFury/compare/v0.5.1...v0.5.2)
|
8
29
|
|
9
30
|
###v0.5.1
|
10
31
|
####Enhancements
|
11
32
|
|
12
33
|
* Adding ability to name attributes in order of id, name, title.
|
13
34
|
|
14
|
-
[full changelog](https://github.com/scottcsims/SeleniumFury/compare/v0.5...v0.5.1)
|
15
35
|
|
16
36
|
###v0.5.
|
17
37
|
####Enhancements
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,38 +1,53 @@
|
|
1
1
|
SeleniumFury
|
2
2
|
=========
|
3
|
-
Selenium Fury
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
all of the selenium locators you are using in your page file and return a list of the locators that it could not find.
|
9
|
-
If there are missing locators you can then rerun the generator to generate new selenium locators for your page.
|
3
|
+
Selenium Fury helps you quickly build page objects when using either Selenium RC API or Selenium Web Driver API.
|
4
|
+
|
5
|
+
Demo Setup
|
6
|
+
=========
|
7
|
+
If you are running the demo from the source.
|
10
8
|
|
9
|
+
```ruby
|
10
|
+
bundle console
|
11
|
+
require 'spec/spec_helper'
|
12
|
+
```
|
11
13
|
|
12
|
-
|
13
|
-
=========
|
14
|
-
* See specs and features for full syntax
|
15
|
-
* generate(browser)
|
14
|
+
If you are running the demo from the installed gem
|
16
15
|
|
16
|
+
```ruby
|
17
|
+
irb
|
18
|
+
require 'selenium_fury'
|
19
|
+
include SeleniumFury::SeleniumWebDriver::CreateSeleniumWebDriver
|
20
|
+
```
|
17
21
|
|
18
|
-
|
22
|
+
Quick Test Demo
|
19
23
|
=========
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
+
```ruby
|
25
|
+
launch_web_driver("http://www.homeaway.com/")
|
26
|
+
home_page=get_page_object(driver,'HomePage')
|
27
|
+
home_page.search_keywords.send_keys 'Destin'
|
28
|
+
home_page.keyword_submit.click
|
29
|
+
driver.quit
|
30
|
+
```
|
31
|
+
|
32
|
+
Generate Demo
|
24
33
|
=========
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
34
|
+
```ruby
|
35
|
+
launch_web_driver("http://www.homeaway.com/")
|
36
|
+
generate(driver)
|
37
|
+
driver.quit
|
38
|
+
```
|
39
|
+
Validate Demo
|
30
40
|
=========
|
31
|
-
|
41
|
+
```ruby
|
42
|
+
launch_web_driver("http://www.homeaway.com/")
|
43
|
+
get_page_object(driver,'HomePage')
|
44
|
+
validate(HomePage)
|
45
|
+
driver.quit
|
46
|
+
```
|
32
47
|
* [Scott Sims](http://scottcsims.com/): Current maintainer.
|
33
48
|
|
34
49
|
Copyright
|
35
50
|
=========
|
36
|
-
* Copyright (c)
|
51
|
+
* Copyright (c) 2012 HomeAway, Inc.
|
37
52
|
* All rights reserved. http://www.homeaway.com
|
38
53
|
See LICENSE for details.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.5.
|
1
|
+
0.5.9
|
data/lib/selenium_fury.rb
CHANGED
@@ -2,10 +2,10 @@ module SeleniumFury
|
|
2
2
|
module SeleniumApiChooser
|
3
3
|
def generate(selenium_api_object)
|
4
4
|
if selenium_api_object.class == Selenium::Client::Driver
|
5
|
-
return
|
5
|
+
return get_source_and_print_elements(selenium_api_object)
|
6
6
|
end
|
7
7
|
if selenium_api_object.class == Selenium::WebDriver::Driver
|
8
|
-
return
|
8
|
+
return web_driver_generate(selenium_api_object)
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
@@ -14,7 +14,7 @@ module SeleniumFury
|
|
14
14
|
return check_page_file_class(page_object,*live_url)
|
15
15
|
end
|
16
16
|
unless driver.nil?
|
17
|
-
return
|
17
|
+
return web_driver_validate(page_object)
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
data/selenium_fury.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "selenium_fury"
|
8
|
-
s.version = "0.5.
|
8
|
+
s.version = "0.5.9"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Scott Sims", "Tim Tischler"]
|
12
|
-
s.date = "2012-01-
|
12
|
+
s.date = "2012-01-31"
|
13
13
|
s.description = "Generate and validate page objects with this page object factory for Selenium."
|
14
14
|
s.email = "ssims98@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -79,7 +79,7 @@ Gem::Specification.new do |s|
|
|
79
79
|
s.add_development_dependency(%q<yard>, [">= 0"])
|
80
80
|
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
81
81
|
s.add_development_dependency(%q<rdiscount>, [">= 0"])
|
82
|
-
s.add_development_dependency(%q<rspec>, ["
|
82
|
+
s.add_development_dependency(%q<rspec>, ["= 2.7.0"])
|
83
83
|
s.add_development_dependency(%q<cucumber>, [">= 0"])
|
84
84
|
s.add_development_dependency(%q<bundler>, [">= 0"])
|
85
85
|
s.add_development_dependency(%q<builder>, [">= 0"])
|
@@ -92,7 +92,7 @@ Gem::Specification.new do |s|
|
|
92
92
|
s.add_dependency(%q<yard>, [">= 0"])
|
93
93
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
94
94
|
s.add_dependency(%q<rdiscount>, [">= 0"])
|
95
|
-
s.add_dependency(%q<rspec>, ["
|
95
|
+
s.add_dependency(%q<rspec>, ["= 2.7.0"])
|
96
96
|
s.add_dependency(%q<cucumber>, [">= 0"])
|
97
97
|
s.add_dependency(%q<bundler>, [">= 0"])
|
98
98
|
s.add_dependency(%q<builder>, [">= 0"])
|
@@ -106,7 +106,7 @@ Gem::Specification.new do |s|
|
|
106
106
|
s.add_dependency(%q<yard>, [">= 0"])
|
107
107
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
108
108
|
s.add_dependency(%q<rdiscount>, [">= 0"])
|
109
|
-
s.add_dependency(%q<rspec>, ["
|
109
|
+
s.add_dependency(%q<rspec>, ["= 2.7.0"])
|
110
110
|
s.add_dependency(%q<cucumber>, [">= 0"])
|
111
111
|
s.add_dependency(%q<bundler>, [">= 0"])
|
112
112
|
s.add_dependency(%q<builder>, [">= 0"])
|
@@ -3,12 +3,12 @@ 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
5
|
create_selenium_client_driver "http://www.scottcsims.com"
|
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
10
|
launch_web_driver "http://www.scottcsims.com"
|
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
|
@@ -18,17 +18,16 @@ describe SeleniumFury::SeleniumApiChooser do
|
|
18
18
|
end
|
19
19
|
it "should find the validator for selenium web driver tests" do
|
20
20
|
launch_web_driver "http://www.scottcsims.com"
|
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 elements for selenium client tests" do
|
27
|
-
|
27
|
+
create_selenium_driver "http://www.scottcsims.com"
|
28
28
|
browser.start_new_browser_session
|
29
29
|
browser.open "/"
|
30
30
|
generate(browser).should include("found (8 elements)")
|
31
|
-
|
32
31
|
end
|
33
32
|
it "should find validate elements for selenium client tests" do
|
34
33
|
create_selenium_driver("http://www.homeaway.com")
|
@@ -3,7 +3,7 @@ describe SeleniumFury::SeleniumClient::PageValidator do
|
|
3
3
|
it "should validate the elements contained on the AdvancedSearch page object" do
|
4
4
|
create_selenium_driver("http://www.homeaway.com")
|
5
5
|
browser.start_new_browser_session
|
6
|
-
|
6
|
+
validate(AdvancedSearch, "/searchForm")
|
7
7
|
@found_missing_locators.should_not be_nil
|
8
8
|
@found_missing_locators.should have(0).missing_locators
|
9
9
|
end
|
@@ -19,7 +19,7 @@ describe SeleniumFury::SeleniumClient::PageValidator do
|
|
19
19
|
end
|
20
20
|
browser.start_new_browser_session
|
21
21
|
begin
|
22
|
-
|
22
|
+
validate(MissingLocators, browser, "/searchForm")
|
23
23
|
rescue Exception => e
|
24
24
|
puts e.message.should include("found missing locators")
|
25
25
|
@found_missing_locators["missing"].should =="missing_id"
|
@@ -6,16 +6,12 @@ describe SeleniumFury::SeleniumWebDriver::PageValidator do
|
|
6
6
|
element :not_a_element1, {:id=>"not a element1"}
|
7
7
|
end
|
8
8
|
launch_web_driver("http://www.homeaway.com/searchForm")
|
9
|
-
|
10
|
-
web_driver_validate(MissingElement)
|
11
|
-
rescue Exception => e
|
12
|
-
e.message.should == "Found Missing Elements"
|
13
|
-
end
|
9
|
+
lambda{web_driver_validate(MissingElement)}.should raise_exception(RuntimeError,"Found Missing Elements")
|
14
10
|
end
|
15
11
|
|
16
12
|
it "should validate elements" do
|
17
13
|
launch_web_driver("http://www.homeaway.com/searchForm")
|
18
|
-
|
14
|
+
validate(AdvancedSearchWebDriver)
|
19
15
|
end
|
20
16
|
|
21
17
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -12,12 +12,11 @@ require "selenium_client/advanced_search"
|
|
12
12
|
require "selenium_web_driver/inquiry_side_bar"
|
13
13
|
require "selenium_web_driver/property_page"
|
14
14
|
require "selenium_web_driver/advanced_search"
|
15
|
-
|
15
|
+
include SeleniumFury::SeleniumWebDriver::CreateSeleniumWebDriver
|
16
|
+
include SeleniumFury::SeleniumClient::CreateSeleniumClientDriver
|
16
17
|
RSpec.configure do |config|
|
17
18
|
config.after(:each) do
|
18
19
|
browser.close_current_browser_session unless(browser.nil? || browser.session_id.nil?)
|
19
20
|
driver.quit unless driver.nil?
|
20
21
|
end
|
21
|
-
config.include SeleniumFury::SeleniumClient::CreateSeleniumClientDriver
|
22
|
-
config.include SeleniumFury::SeleniumWebDriver::CreateSeleniumWebDriver
|
23
22
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: selenium_fury
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 25
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 5
|
9
|
-
-
|
10
|
-
version: 0.5.
|
9
|
+
- 9
|
10
|
+
version: 0.5.9
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Scott Sims
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2012-01-
|
19
|
+
date: 2012-01-31 00:00:00 Z
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
22
|
version_requirements: &id001 !ruby/object:Gem::Requirement
|
@@ -92,12 +92,14 @@ dependencies:
|
|
92
92
|
version_requirements: &id006 !ruby/object:Gem::Requirement
|
93
93
|
none: false
|
94
94
|
requirements:
|
95
|
-
- - "
|
95
|
+
- - "="
|
96
96
|
- !ruby/object:Gem::Version
|
97
|
-
hash:
|
97
|
+
hash: 19
|
98
98
|
segments:
|
99
|
+
- 2
|
100
|
+
- 7
|
99
101
|
- 0
|
100
|
-
version:
|
102
|
+
version: 2.7.0
|
101
103
|
requirement: *id006
|
102
104
|
prerelease: false
|
103
105
|
name: rspec
|