selenium_fury 0.5.8 → 0.5.9
Sign up to get free protection for your applications and to get access to all the features.
- 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
|