rudra 1.1.1 → 1.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rudra.rb +24 -15
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f6485433a80329770ea6ce43647f1d10176c20fa1eefa825b51e222615e0b4fe
|
4
|
+
data.tar.gz: 980b66578597240fab1f2b0c68ee9fcc68be47b7466a8b5d99decf3dec6787c4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f12e6ea46bb610708c6fa9cf13cd897bbd2e19ea645d7f5e748b1daccac7efdf00470b8333f16907401c9e63968f975f2c526188513862197db8771669e7c785
|
7
|
+
data.tar.gz: 7584799d278830b5912e6eb57e6582c3b2b7bb93cafff6c2bbc331137b06181674f5152e3cf179696ff3d1c6b66d0a91546fbd5800e2329662e5bb95357a8f40
|
data/lib/rudra.rb
CHANGED
@@ -292,13 +292,16 @@ class Rudra
|
|
292
292
|
# Save a PNG screenshot to file
|
293
293
|
# @param [String] filename the filename of PNG screenshot
|
294
294
|
def save_screenshot(filename)
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
@screen_dir,
|
299
|
-
filename.end_with?('.png') ? filename : "#{filename}.png"
|
300
|
-
)
|
295
|
+
file = File.join(
|
296
|
+
@screen_dir,
|
297
|
+
sanitize(filename.end_with?('.png') ? filename : "#{filename}.png")
|
301
298
|
)
|
299
|
+
|
300
|
+
dir = File.dirname(file)
|
301
|
+
|
302
|
+
mkdir(dir) unless Dir.exist?(dir)
|
303
|
+
|
304
|
+
driver.save_screenshot(file)
|
302
305
|
end
|
303
306
|
|
304
307
|
# Switch to the currently active modal dialog
|
@@ -370,24 +373,22 @@ class Rudra
|
|
370
373
|
# @param [String, Selenium::WebDriver::Element] locator the locator to
|
371
374
|
# identify the element or Selenium::WebDriver::Element
|
372
375
|
# @param [Integer] seconds seconds before timed out
|
373
|
-
def wait_for_not_visible(locator, seconds =
|
376
|
+
def wait_for_not_visible(locator, seconds = 3)
|
374
377
|
how, what = parse_locator(locator)
|
375
378
|
|
379
|
+
implicit_wait(seconds)
|
380
|
+
|
376
381
|
begin
|
377
382
|
wait_for(seconds) do
|
378
|
-
|
379
|
-
|
380
|
-
elements.empty? || elements.map(&:displayed?).none?
|
381
|
-
rescue Selenium::WebDriver::Error::NoSuchElementError
|
382
|
-
true
|
383
|
-
rescue Selenium::WebDriver::Error::StaleElementReferenceError
|
384
|
-
false
|
385
|
-
end
|
383
|
+
elements = driver.find_elements(how, what)
|
384
|
+
elements.empty? || elements.map(&:displayed?).none?
|
386
385
|
end
|
387
386
|
rescue Selenium::WebDriver::Error::TimeoutError
|
388
387
|
true
|
389
388
|
rescue Net::ReadTimeout
|
390
389
|
true
|
390
|
+
ensure
|
391
|
+
implicit_wait(timeout)
|
391
392
|
end
|
392
393
|
end
|
393
394
|
|
@@ -1305,6 +1306,14 @@ class Rudra
|
|
1305
1306
|
)
|
1306
1307
|
end
|
1307
1308
|
|
1309
|
+
def sanitize(filename)
|
1310
|
+
invalid_characters = ['/', '\\', '?', '%', '*', ':', '|', '"', '<', '>']
|
1311
|
+
invalid_characters.each do |character|
|
1312
|
+
filename.gsub!(character, '')
|
1313
|
+
end
|
1314
|
+
filename
|
1315
|
+
end
|
1316
|
+
|
1308
1317
|
def random_id(length = 8)
|
1309
1318
|
charset = [(0..9), ('a'..'z')].flat_map(&:to_a)
|
1310
1319
|
id = Array.new(length) { charset.sample }.join
|