rwebspec-webdriver 0.3.3 → 0.3.4

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 CHANGED
@@ -1,5 +1,11 @@
1
1
  CHANGELOG
2
2
  =========
3
+
4
+ == 0.3.4
5
+
6
+ [Fix] not throwing select list's option not found
7
+ [New] web_browser.driver returns underlying browser (web_driver instance)
8
+
3
9
  == 0.3.3
4
10
 
5
11
  * [Fix] Page class to include Utils module
data/Rakefile CHANGED
@@ -69,7 +69,7 @@ end
69
69
  spec = Gem::Specification.new do |s|
70
70
  s.platform= Gem::Platform::RUBY
71
71
  s.name = "rwebspec-webdriver"
72
- s.version = "0.3.3"
72
+ s.version = "0.3.4"
73
73
  s.summary = "Executable functional specification for web applications in RSpec syntax and Selenium-WebDriver"
74
74
  # s.description = ""
75
75
 
@@ -17,7 +17,7 @@ require 'spec'
17
17
  require 'selenium-webdriver'
18
18
 
19
19
  unless defined? RWEBSPEC_WEBDRIVER_VERSION
20
- RWEBSPEC_WEBDRIVER_VERSION = "0.3.3"
20
+ RWEBSPEC_WEBDRIVER_VERSION = "0.3.4"
21
21
  end
22
22
 
23
23
 
@@ -49,7 +49,7 @@ module RWebSpec
49
49
  :highlight_colour => 'yellow',
50
50
  :close_others => true,
51
51
  :start_new => true, # start a new browser always
52
- :go => true}
52
+ :go => true }
53
53
 
54
54
  options = default_options.merge options
55
55
 
@@ -68,7 +68,7 @@ module RWebSpec
68
68
  uri_base = "#{uri.scheme}://#{uri.host}:#{uri.port}"
69
69
  end
70
70
 
71
- if options[:start_new] || $celerity_loaded
71
+ if options[:start_new]
72
72
  # puts "[DEBUG] [SeleniumBrowser] creating a new browser"
73
73
  @web_browser = WebBrowser.new(uri_base, nil, options)
74
74
  # puts "[DEBUG] [SeleniumBrowser] browser: #{@web_browser.inspect}"
@@ -4,82 +4,17 @@ module RWebSpec
4
4
  module LoadTestHelper
5
5
 
6
6
  include RWebSpec::WebDriver::Utils
7
+ include RWebSpec::WebDriver::Driver
7
8
  include RWebSpec::WebDriver::Assert
8
9
 
9
10
  MAX_VU = 1000
10
11
 
11
12
  # only support firefox or Celerity
12
13
  def open_browser(base_url, options = {})
13
- default_options = {:resynchronize => false, :firefox => false }
14
- options = default_options.merge(options)
15
- options[:firefox] ||= (ENV['LOADWISE_PREVIEW'] || $LOADWISE_PREVIEW)
16
- RWebSpec::WebDriver::WebBrowser.new(base_url, nil, options)
17
- end
18
-
19
- # maybe attach_browser
20
-
21
- # Does not provide real function, other than make enhancing test syntax
22
- #
23
- # Example:
24
- # allow { click_button('Register') }
25
- def allow(&block)
26
- yield
27
- end
28
- alias shall_allow allow
29
- alias allowing allow
30
-
31
- # try operation, ignore if errors occur
32
- #
33
- # Example:
34
- # failsafe { click_link("Logout") } # try logout, but it still OK if not being able to (already logout))
35
- def failsafe(&block)
36
- begin
37
- yield
38
- rescue =>e
39
- end
40
- end
41
- alias fail_safe failsafe
42
-
43
- # Try the operation up to specified timeout (in seconds), and sleep given interval (in seconds).
44
- # Error will be ignored until timeout
45
- # Example
46
- # try { click_link('waiting')}
47
- # try(10, 2) { click_button('Search' } # try to click the 'Search' button upto 10 seconds, try every 2 seconds
48
- # try { click_button('Search' }
49
- def try(timeout = $testwise_polling_timeout, polling_interval = $testwise_polling_interval || 1, &block)
50
- start_time = Time.now
51
-
52
- last_error = nil
53
- until (duration = Time.now - start_time) > timeout
54
- begin
55
- return if yield
56
- last_error = nil
57
- rescue => e
58
- last_error = e
59
- end
60
- sleep polling_interval
61
- end
62
-
63
- raise "Timeout after #{duration.to_i} seconds with error: #{last_error}." if last_error
64
- raise "Timeout after #{duration.to_i} seconds."
65
- end
66
- alias try_upto try
67
-
68
- ##
69
- # Convert :first to 1, :second to 2, and so on...
70
- def symbol_to_sequence(symb)
71
- value = { :zero => 0,
72
- :first => 1,
73
- :second => 2,
74
- :third => 3,
75
- :fourth => 4,
76
- :fifth => 5,
77
- :sixth => 6,
78
- :seventh => 7,
79
- :eighth => 8,
80
- :ninth => 9,
81
- :tenth => 10 }[symb]
82
- return value || symb.to_i
14
+ options[:browser] ||= (ENV['LOADWISE_PREVIEW'] || $LOADWISE_PREVIEW)
15
+ default_options = {:browser => :htmlunit , :go => true}
16
+ options = default_options.merge(options)
17
+ @web_browser = WebBrowser.new(base_url, nil, options)
83
18
  end
84
19
 
85
20
  # monitor current execution using
@@ -29,30 +29,17 @@ module RWebSpec
29
29
  }
30
30
  options = default_options.merge options
31
31
  @context = Context.new base_url if base_url
32
-
33
- case RUBY_PLATFORM
34
- when /java/i
35
- initialize_celerity_browser(base_url, options)
36
- when /mswin|windows|mingw/i
37
- options[:browser] ||= "ie"
38
- case options[:browser].to_s.downcase
32
+
33
+ options[:browser] ||= "ie" if RUBY_PLATFORM =~ /mingw/
34
+ case options[:browser].to_s.downcase
39
35
  when "firefox"
40
36
  initialize_firefox_browser(existing_browser, base_url, options)
41
37
  when "chrome"
42
38
  initialize_chrome_browser(existing_browser, base_url, options)
43
39
  when "ie"
44
40
  initialize_ie_browser(existing_browser, options)
45
- end
46
-
47
- else
48
- puts "Ruby Linux or Mac platform: firefox"
49
- options[:browser] ||= "firefox"
50
- case options[:browser].to_s
51
- when "firefox"
52
- initialize_firefox_browser(existing_browser, base_url, options)
53
- when "chrome"
54
- initialize_chrome_browser(existing_browser, base_url, options)
55
- end
41
+ when "htmlunit"
42
+ initialize_htmlunit_browser(base_url, options)
56
43
  end
57
44
  end
58
45
 
@@ -77,11 +64,16 @@ module RWebSpec
77
64
  end
78
65
 
79
66
  def initialize_htmlunit_browser(base_url, options)
80
- # default_celerity_options = {:proxy => nil, :browser => :firefox, :resynchronize => true, :log_level => :off}
81
- # options = default_celerity_options.merge options
82
- # options.each { |k, v| options.delete(k) unless default_celerity_options.keys.include?(k) }
83
- @browser = Selenium::WebDriver.for :htmlunit
84
- @browser.navigate.to base_url
67
+ puts "XXXXX start HtmlUnit..."
68
+ require 'json'
69
+ caps = Selenium::WebDriver::Remote::Capabilities.htmlunit(:javascript_enabled => false)
70
+ client = Selenium::WebDriver::Remote::Http::Default.new
71
+ # client.proxy = Selenium::WebDriver::Proxy.new(:http => "web-proxy.qdot.qld.gov.au:3128")
72
+
73
+ @browser = Selenium::WebDriver.for(:remote, :http_client => client , :desired_capabilities => caps)
74
+ if options[:go]
75
+ @browser.navigate.to(base_url)
76
+ end
85
77
  end
86
78
 
87
79
  def initialize_ie_browser(existing_browser, options)
@@ -284,12 +276,15 @@ module RWebSpec
284
276
  @context = Context.new base_url
285
277
  end
286
278
 
279
+ def driver
280
+ @browser
281
+ end
282
+
287
283
  def underlying_browser
288
284
  @browser
289
285
  end
290
286
 
291
287
  def is_ie?
292
- puts @browser.browser.to_s
293
288
  @browser.browser.to_s == "ie"
294
289
  end
295
290
 
@@ -307,11 +302,7 @@ module RWebSpec
307
302
 
308
303
  #TODO determine browser type, check FireWatir support or not
309
304
  def self.close_all_browsers
310
- if RUBY_PLATFORM.downcase.include?("mswin")
311
- Watir::IE.close_all
312
- else
313
- # raise "not supported in FireFox yet."
314
- end
305
+ raise "not implemented"
315
306
  end
316
307
 
317
308
  def full_url(relative_url)
@@ -524,10 +515,14 @@ module RWebSpec
524
515
 
525
516
  options = select_box.find_elements(:tag_name, "option")
526
517
  options.each do |opt|
527
- # puts opt.methods
528
- opt.click if text == opt.text
518
+ opt.click
519
+ if text == opt.text
520
+ opt.click
521
+ return true
522
+ end
529
523
  end
530
- # select_list(:name, selectName).select(option)
524
+
525
+ raise "no option with text '#{text}' found for select list name = '#{selectName}"
531
526
  end
532
527
 
533
528
  # submit first submit button
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rwebspec-webdriver
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
4
+ hash: 27
5
+ prerelease:
5
6
  segments:
6
7
  - 0
7
8
  - 3
8
- - 3
9
- version: 0.3.3
9
+ - 4
10
+ version: 0.3.4
10
11
  platform: ruby
11
12
  authors:
12
13
  - Zhimin Zhan
@@ -14,16 +15,17 @@ autorequire: rwebspec-webdriver
14
15
  bindir: bin
15
16
  cert_chain: []
16
17
 
17
- date: 2012-01-23 00:00:00 +10:00
18
- default_executable:
18
+ date: 2012-03-11 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: rspec
22
22
  prerelease: false
23
23
  requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
24
25
  requirements:
25
26
  - - "="
26
27
  - !ruby/object:Gem::Version
28
+ hash: 11
27
29
  segments:
28
30
  - 1
29
31
  - 1
@@ -35,9 +37,11 @@ dependencies:
35
37
  name: selenium-webdriver
36
38
  prerelease: false
37
39
  requirement: &id002 !ruby/object:Gem::Requirement
40
+ none: false
38
41
  requirements:
39
42
  - - ">="
40
43
  - !ruby/object:Gem::Version
44
+ hash: 13
41
45
  segments:
42
46
  - 2
43
47
  - 0
@@ -49,9 +53,11 @@ dependencies:
49
53
  name: sanitize
50
54
  prerelease: false
51
55
  requirement: &id003 !ruby/object:Gem::Requirement
56
+ none: false
52
57
  requirements:
53
58
  - - ">="
54
59
  - !ruby/object:Gem::Version
60
+ hash: 15
55
61
  segments:
56
62
  - 2
57
63
  - 0
@@ -93,7 +99,6 @@ files:
93
99
  - lib/rwebspec-webdriver.rb
94
100
  - lib/webdriver_extensions.rb
95
101
  - lib/window_script_extensions.rb
96
- has_rdoc: true
97
102
  homepage: http://github.com/zhimin/rwebspec-webdriver/tree/master
98
103
  licenses: []
99
104
 
@@ -103,23 +108,27 @@ rdoc_options: []
103
108
  require_paths:
104
109
  - lib
105
110
  required_ruby_version: !ruby/object:Gem::Requirement
111
+ none: false
106
112
  requirements:
107
113
  - - ">="
108
114
  - !ruby/object:Gem::Version
115
+ hash: 3
109
116
  segments:
110
117
  - 0
111
118
  version: "0"
112
119
  required_rubygems_version: !ruby/object:Gem::Requirement
120
+ none: false
113
121
  requirements:
114
122
  - - ">="
115
123
  - !ruby/object:Gem::Version
124
+ hash: 3
116
125
  segments:
117
126
  - 0
118
127
  version: "0"
119
128
  requirements:
120
129
  - none
121
130
  rubyforge_project: rwebspec-webdriver
122
- rubygems_version: 1.3.6
131
+ rubygems_version: 1.8.15
123
132
  signing_key:
124
133
  specification_version: 3
125
134
  summary: Executable functional specification for web applications in RSpec syntax and Selenium-WebDriver