gridium 1.0.24 → 1.0.25
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.
- checksums.yaml +4 -4
- data/lib/driver.rb +39 -38
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0c4000b1d9492350bd2822865345f7ea075f4a21
|
4
|
+
data.tar.gz: b0fe0e9605f43905fd72d3eebec8fa8e35e543fb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c4b2a1943330d58b59e3e303da9e1230922fc672a807c727d4931eef9b94381c59bbae8f14836bede3fd2be6b78caa023be79b3c3842edd7021da0c1fcdc8a53
|
7
|
+
data.tar.gz: 783500fba46309e94a3c708856626880d683a275a3fd21fc035d3c59dc15e5dea106b83287a73319e793208bded616ecf4fc006767fe41dcff3741e12180bebe
|
data/lib/driver.rb
CHANGED
@@ -6,7 +6,7 @@ class Driver
|
|
6
6
|
@@driver = nil
|
7
7
|
|
8
8
|
def self.reset
|
9
|
-
Log.debug("
|
9
|
+
Log.debug("[Gridium::Driver] Driver.reset: #{@@driver}")
|
10
10
|
driver.manage.delete_all_cookies
|
11
11
|
driver.manage.timeouts.page_load = Gridium.config.page_load_timeout
|
12
12
|
driver.manage.timeouts.implicit_wait = Gridium.config.element_timeout
|
@@ -27,12 +27,12 @@ class Driver
|
|
27
27
|
def self.driver
|
28
28
|
begin
|
29
29
|
unless @@driver
|
30
|
-
Log.debug("
|
30
|
+
Log.debug("[Gridium::Driver] Driver.driver: instantiating new driver")
|
31
31
|
@browser_type = Gridium.config.browser
|
32
32
|
##Adding support for remote browsers
|
33
33
|
if Gridium.config.browser_source == :remote
|
34
34
|
@@driver = Selenium::WebDriver.for(:remote, url: Gridium.config.target_environment, desired_capabilities: Gridium.config.browser)
|
35
|
-
Log.debug("Remote Browser Requested: #{@@driver}")
|
35
|
+
Log.debug("[Gridium::Driver] Remote Browser Requested: #{@@driver}")
|
36
36
|
#this file detector is only used for remote drivers and is needed to upload files from test_host through Grid to browser
|
37
37
|
@@driver.file_detector = lambda do |args|
|
38
38
|
str = args.first.to_s
|
@@ -45,19 +45,19 @@ class Driver
|
|
45
45
|
#do stuff
|
46
46
|
s3_project_folder = Gridium.config.project_name_for_s3
|
47
47
|
s3_subfolder = Gridium.config.subdirectory_name_for_s3
|
48
|
-
Log.debug("configuring s3 to save files to this directory: #{s3_project_folder} in addition to being saved locally")
|
48
|
+
Log.debug("[Gridium::Driver] configuring s3 to save files to this directory: #{s3_project_folder} in addition to being saved locally")
|
49
49
|
@s3 = Gridium::GridiumS3.new(s3_project_folder, s3_subfolder)
|
50
|
-
Log.debug("s3 is #{@s3}")
|
50
|
+
Log.debug("[Gridium::Driver] s3 is #{@s3}")
|
51
51
|
else
|
52
|
-
Log.debug("s3 screenshots not enabled in spec_helper; they will be only be saved locally")
|
52
|
+
Log.debug("[Gridium::Driver] s3 screenshots not enabled in spec_helper; they will be only be saved locally")
|
53
53
|
@s3 = nil
|
54
54
|
end
|
55
55
|
reset
|
56
56
|
end
|
57
57
|
@@driver
|
58
58
|
rescue Exception => e
|
59
|
-
Log.debug(e.backtrace.inspect)
|
60
|
-
Log.info("Driver did not load within (#{Gridium.config.page_load_timeout}) seconds. [#{e.message}]")
|
59
|
+
Log.debug("[Gridium::Driver] #{e.backtrace.inspect}")
|
60
|
+
Log.info("[Gridium::Driver] Driver did not load within (#{Gridium.config.page_load_timeout}) seconds. [#{e.message}]")
|
61
61
|
$fail_test_instantly = true
|
62
62
|
Kernel.fail(e.message)
|
63
63
|
end
|
@@ -79,32 +79,33 @@ class Driver
|
|
79
79
|
# =============== #
|
80
80
|
|
81
81
|
def self.visit(path)
|
82
|
-
Log.debug("
|
82
|
+
Log.debug("[Gridium::Driver] Driver.Visit: #{@@driver}")
|
83
83
|
begin
|
84
84
|
if path
|
85
|
-
Log.debug("Navigating to url: (#{path}).")
|
85
|
+
Log.debug("[Gridium::Driver] Navigating to url: (#{path}).")
|
86
86
|
driver
|
87
87
|
time_start = Time.now
|
88
88
|
driver.navigate.to(path)
|
89
89
|
time_end = Time.new
|
90
90
|
page_load = (time_end - time_start)
|
91
|
-
Log.debug("Page loaded in (#{page_load}) seconds.")
|
91
|
+
Log.debug("[Gridium::Driver] Page loaded in (#{page_load}) seconds.")
|
92
92
|
$verification_passes += 1
|
93
93
|
end
|
94
|
-
rescue
|
95
|
-
Log.debug(e.backtrace.inspect)
|
96
|
-
Log.error("#{e.message} - Also be sure to check the url formatting. http:// is required for proper test execution (www is optional).")
|
94
|
+
rescue Selenium::WebDriver::Error::ScriptTimeoutError => e
|
95
|
+
Log.debug("[Gridium::Driver] #{e.backtrace.inspect}")
|
96
|
+
Log.error("[Gridium::Driver] Timed out attempting to load #{path} for #{Gridium.config.page_load_timeout} seconds:\n#{e.message}\n - Also be sure to check the url formatting. http:// is required for proper test execution (www is optional).")
|
97
|
+
raise e
|
97
98
|
end
|
98
99
|
end
|
99
100
|
|
100
101
|
def self.nav(path)
|
101
|
-
Log.debug("
|
102
|
+
Log.debug("[Gridium::Driver] Driver.nav: #{@@driver}")
|
102
103
|
visit(Gridium.config.url + path)
|
103
104
|
end
|
104
105
|
|
105
106
|
def self.quit
|
106
107
|
if @@driver
|
107
|
-
Log.debug('Shutting down web driver...')
|
108
|
+
Log.debug('[Gridium::Driver] Shutting down web driver...')
|
108
109
|
@@driver.quit
|
109
110
|
@@driver = nil
|
110
111
|
end
|
@@ -141,22 +142,22 @@ class Driver
|
|
141
142
|
domain = URI.parse(site_url)
|
142
143
|
host = domain.host
|
143
144
|
if (!host.nil?)
|
144
|
-
Log.debug("Current domain is: (#{host}).")
|
145
|
+
Log.debug("[Gridium::Driver] Current domain is: (#{host}).")
|
145
146
|
return host
|
146
147
|
else
|
147
|
-
Log.error("Unable to parse URL.")
|
148
|
+
Log.error("[Gridium::Driver] Unable to parse URL.")
|
148
149
|
end
|
149
150
|
end
|
150
151
|
|
151
152
|
def self.verify_url(given_url)
|
152
|
-
Log.debug('Verifying URL...')
|
153
|
+
Log.debug('[Gridium::Driver] Verifying URL...')
|
153
154
|
current_url = self.current_url.to_s
|
154
155
|
current_domain = self.current_domain.to_s
|
155
156
|
if current_url.include?(given_url)
|
156
|
-
Log.debug("Confirmed. (#{current_url}) includes (#{given_url}).")
|
157
|
+
Log.debug("[Gridium::Driver] Confirmed. (#{current_url}) includes (#{given_url}).")
|
157
158
|
$verification_passes += 1
|
158
159
|
else
|
159
|
-
Log.error("(#{current_url}) does not include (#{given_url}).")
|
160
|
+
Log.error("[Gridium::Driver] (#{current_url}) does not include (#{given_url}).")
|
160
161
|
end
|
161
162
|
end
|
162
163
|
|
@@ -194,7 +195,7 @@ class Driver
|
|
194
195
|
end
|
195
196
|
|
196
197
|
def self.save_screenshot(type = 'saved')
|
197
|
-
Log.debug ("Capturing screenshot of browser...")
|
198
|
+
Log.debug ("[Gridium::Driver] Capturing screenshot of browser...")
|
198
199
|
timestamp = Time.now.strftime("%Y_%m_%d__%H_%M_%S")
|
199
200
|
screenshot_path = File.join($current_run_dir, "screenshot__#{timestamp}__#{type}.png")
|
200
201
|
driver.save_screenshot(screenshot_path)
|
@@ -206,71 +207,71 @@ class Driver
|
|
206
207
|
def self._save_to_s3_if_configured(screenshot_path)
|
207
208
|
if Gridium.config.screenshots_to_s3
|
208
209
|
url = @s3.save_file(screenshot_path)
|
209
|
-
Log.info("#{screenshot_path} saved to #{url}")
|
210
|
+
Log.info("[Gridium::Driver] #{screenshot_path} saved to #{url}")
|
210
211
|
end
|
211
212
|
end
|
212
213
|
|
213
214
|
|
214
215
|
def self.list_open_windows
|
215
216
|
handles = driver.window_handles
|
216
|
-
Log.debug("List of active windows:")
|
217
|
+
Log.debug("[Gridium::Driver] List of active windows:")
|
217
218
|
handles.each do |handle|
|
218
219
|
driver.switch_to.window(handle)
|
219
|
-
Log.debug("
|
220
|
+
Log.debug("[Gridium::Driver] Window with title: (#{driver.title}) and handle: #{handle} is currently open.")
|
220
221
|
end
|
221
222
|
driver.switch_to.window(driver.window_handles.first)
|
222
223
|
end
|
223
224
|
|
224
225
|
def self.open_new_window(url)
|
225
|
-
Log.debug("Opening new window and loading url (#{url})...")
|
226
|
+
Log.debug("[Gridium::Driver] Opening new window and loading url (#{url})...")
|
226
227
|
DriverExtensions.open_new_window(url)
|
227
228
|
end
|
228
229
|
|
229
230
|
def self.close_window
|
230
|
-
Log.debug("Closing window (#{driver.title})...")
|
231
|
+
Log.debug("[Gridium::Driver] Closing window (#{driver.title})...")
|
231
232
|
DriverExtensions.close_window
|
232
233
|
end
|
233
234
|
|
234
235
|
def self.switch_to_window(title)
|
235
236
|
current_title = driver.title
|
236
|
-
Log.debug("Current window is: (#{current_title}). Switching to next window (#{title})...")
|
237
|
+
Log.debug("[Gridium::Driver] Current window is: (#{current_title}). Switching to next window (#{title})...")
|
237
238
|
handles = driver.window_handles
|
238
239
|
driver.switch_to.window(handles.first)
|
239
240
|
handles.each do |handle|
|
240
241
|
driver.switch_to.window(handle)
|
241
242
|
if driver.title == title
|
242
|
-
Log.debug("Window (#{driver.title}) is now the active window.")
|
243
|
+
Log.debug("[Gridium::Driver] Window (#{driver.title}) is now the active window.")
|
243
244
|
return
|
244
245
|
end
|
245
246
|
end
|
246
247
|
list_open_windows
|
247
|
-
Log.error("Unable to switch to window with title (#{title}).")
|
248
|
+
Log.error("[Gridium::Driver] Unable to switch to window with title (#{title}).")
|
248
249
|
end
|
249
250
|
|
250
251
|
def self.switch_to_next_window
|
251
252
|
current_title = driver.title
|
252
|
-
Log.debug("Current window is: (#{current_title}). Switching to next window...")
|
253
|
+
Log.debug("[Gridium::Driver] Current window is: (#{current_title}). Switching to next window...")
|
253
254
|
driver.switch_to.window(driver.window_handles.last)
|
254
|
-
Log.debug("Window (#{driver.title}) is now the active window.")
|
255
|
+
Log.debug("[Gridium::Driver] Window (#{driver.title}) is now the active window.")
|
255
256
|
end
|
256
257
|
|
257
258
|
def self.switch_to_main_window
|
258
259
|
current_title = driver.title
|
259
|
-
Log.debug("Current window is: (#{current_title}). Switching to main window...")
|
260
|
+
Log.debug("[Gridium::Driver] Current window is: (#{current_title}). Switching to main window...")
|
260
261
|
driver.switch_to.window(driver.window_handles.first)
|
261
|
-
Log.debug("Window (#{driver.title}) is now the active window.")
|
262
|
+
Log.debug("[Gridium::Driver] Window (#{driver.title}) is now the active window.")
|
262
263
|
end
|
263
264
|
|
264
265
|
def self.switch_to_frame(by, locator)
|
265
|
-
Log.debug("Attempting to switch to Frame at: #{locator}")
|
266
|
+
Log.debug("[Gridium::Driver] Attempting to switch to Frame at: #{locator}")
|
266
267
|
driver.switch_to.frame(driver.find_element(by, locator))
|
267
|
-
Log.debug("Frame at: #{locator} is now active frame!")
|
268
|
+
Log.debug("[Gridium::Driver] Frame at: #{locator} is now active frame!")
|
268
269
|
end
|
269
270
|
|
270
271
|
def self.switch_to_parent_frame
|
271
|
-
Log.debug("Switching back to main parent frame")
|
272
|
+
Log.debug("[Gridium::Driver] Switching back to main parent frame")
|
272
273
|
driver.switch_to.parent_frame
|
273
|
-
Log.debug("Now back to Parent Frame")
|
274
|
+
Log.debug("[Gridium::Driver] Now back to Parent Frame")
|
274
275
|
end
|
275
276
|
|
276
277
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gridium
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.25
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Seth Urban
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-03-
|
11
|
+
date: 2017-03-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|