rudra 1.1.1 → 1.1.2
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/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
|