browza 0.0.3.3 → 0.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.
- checksums.yaml +4 -4
- data/browza.gemspec +1 -1
- data/lib/browza/base/manager.rb +128 -15
- data/lib/browza/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1f585272615cc34b9fd6cab5b62ebc7b49d81ea2
|
4
|
+
data.tar.gz: f245efdf8c0efe55343a2a8257d91d37eb130e98
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9f016cc16f532f489587f270c4e95f87b08ceaf9f85b0b50266cca463560a830d5bef9c5b3c451f1e5c0b76124b90f06dcda79c59df5b829f565f272b7984c23
|
7
|
+
data.tar.gz: 87e1570f64ccfc9cecef64015bda610bc662ba008a09143cd03430589e96fd464dd9cbbc19023eb92cbbd171d0b14d5c2d5d0d8672cd45b4bae5300b280d258d
|
data/browza.gemspec
CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
20
20
|
spec.require_paths = ["lib"]
|
21
21
|
|
22
|
-
spec.add_development_dependency "bundler", "~> 1.
|
22
|
+
spec.add_development_dependency "bundler", "~> 1.15.4"
|
23
23
|
spec.add_development_dependency "rake", "~> 12.0.0"
|
24
24
|
spec.add_development_dependency "rspec", "~> 3.5.0"
|
25
25
|
spec.add_development_dependency "appmodel", "~> 0.1.2"
|
data/lib/browza/base/manager.rb
CHANGED
@@ -9,10 +9,12 @@ module Browza
|
|
9
9
|
class Manager
|
10
10
|
|
11
11
|
include Singleton
|
12
|
+
include Singleton
|
12
13
|
|
13
14
|
attr_accessor :drv
|
14
15
|
attr_accessor :appModels
|
15
16
|
attr_accessor :browserType
|
17
|
+
attr_accessor :defaultRetries
|
16
18
|
attr_accessor :defaultTimeout
|
17
19
|
attr_accessor :driverList
|
18
20
|
attr_accessor :browserMgr
|
@@ -25,6 +27,7 @@ class Manager
|
|
25
27
|
@logger.level = _logLevel
|
26
28
|
@defaultTimeout = 30
|
27
29
|
@appModels=[]
|
30
|
+
@defaultRetries = 2
|
28
31
|
@browserMgr = Browza::BrowzaMgr.new()
|
29
32
|
end
|
30
33
|
|
@@ -766,7 +769,7 @@ class Manager
|
|
766
769
|
|
767
770
|
if _hit.is_a?(Hash)
|
768
771
|
|
769
|
-
|
772
|
+
@defaultRetries.times {
|
770
773
|
|
771
774
|
begin
|
772
775
|
rcFrame = true
|
@@ -865,6 +868,25 @@ class Manager
|
|
865
868
|
obj
|
866
869
|
end
|
867
870
|
|
871
|
+
|
872
|
+
def scrollTo(_locator)
|
873
|
+
|
874
|
+
drv = @driverList[0][:drv]
|
875
|
+
|
876
|
+
obj = findLocator(_locator)
|
877
|
+
|
878
|
+
scrollElementIntoMiddle = "var viewPortHeight = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);" +
|
879
|
+
"var elementTop = arguments[0].getBoundingClientRect().top;" +
|
880
|
+
"window.scrollBy(0, elementTop-(viewPortHeight/2) + 150);";
|
881
|
+
|
882
|
+
drv.execute_script("arguments[0].scrollIntoView(true);", obj);
|
883
|
+
drv.action.move_to(obj).perform
|
884
|
+
# drv.execute_script(scrollElementIntoMiddle, obj)
|
885
|
+
|
886
|
+
end
|
887
|
+
|
888
|
+
|
889
|
+
|
868
890
|
##
|
869
891
|
# Browza.instance.click('page(sideNav).get(desktop)')
|
870
892
|
##
|
@@ -903,6 +925,9 @@ class Manager
|
|
903
925
|
obj.click
|
904
926
|
rc = true
|
905
927
|
end
|
928
|
+
|
929
|
+
rescue Selenium::WebDriver::Error::UnknownError
|
930
|
+
|
906
931
|
rescue => ex
|
907
932
|
@logger.debug __FILE__ + (__LINE__).to_s + " #{ex.class} : #{_locator}"
|
908
933
|
@logger.debug "Backtrace:\n\t#{ex.backtrace.join("\n\t")}"
|
@@ -917,11 +942,15 @@ class Manager
|
|
917
942
|
rc
|
918
943
|
end
|
919
944
|
|
920
|
-
def highlight(_locator, color='red', _drv=nil, _timeout=30)
|
945
|
+
def highlight(_locator=nil, color='red', _drv=nil, _timeout=30)
|
921
946
|
rc = false
|
922
947
|
rgb = nil
|
923
948
|
obj = nil
|
924
949
|
|
950
|
+
if _locator.nil?
|
951
|
+
_locator = @drv.switch_to.active_element
|
952
|
+
end
|
953
|
+
|
925
954
|
if _locator.is_a?(Selenium::WebDriver::Element)
|
926
955
|
obj = _locator
|
927
956
|
else
|
@@ -977,6 +1006,44 @@ class Manager
|
|
977
1006
|
end
|
978
1007
|
|
979
1008
|
|
1009
|
+
def tabUntil( opts )
|
1010
|
+
defaults = { :enableHighlight => false, :verbose => false, :max => 25 }
|
1011
|
+
opts = defaults.merge(opts)
|
1012
|
+
|
1013
|
+
|
1014
|
+
if opts[:verbose]
|
1015
|
+
puts "[tabUntil]: " + opts.to_s
|
1016
|
+
end
|
1017
|
+
|
1018
|
+
# startObj = @drv.switch_to.active_element
|
1019
|
+
i = 0
|
1020
|
+
while i < opts[:max].to_i do
|
1021
|
+
|
1022
|
+
@drv.action.send_keys(:tab).perform
|
1023
|
+
|
1024
|
+
obj = @drv.switch_to.active_element
|
1025
|
+
|
1026
|
+
if obj.is_a?(Selenium::WebDriver::Element) && obj.displayed?
|
1027
|
+
puts "#{i}. " + obj.text.to_s + " : " + obj.attribute('value').to_s if opts[:verbose]
|
1028
|
+
i += 1
|
1029
|
+
end
|
1030
|
+
|
1031
|
+
if false && obj == startObj
|
1032
|
+
puts ".. wrapped"
|
1033
|
+
break
|
1034
|
+
end
|
1035
|
+
|
1036
|
+
if opts[:enableHighlight]
|
1037
|
+
highlight(obj)
|
1038
|
+
end
|
1039
|
+
|
1040
|
+
end
|
1041
|
+
|
1042
|
+
puts "[tabUntil]: total: #{i.to_s}"
|
1043
|
+
|
1044
|
+
end
|
1045
|
+
|
1046
|
+
|
980
1047
|
def type(_locator, _text, _timeout=30)
|
981
1048
|
rc = false
|
982
1049
|
|
@@ -1079,14 +1146,24 @@ class Manager
|
|
1079
1146
|
def isNotDisplayed?(_locator, _timeout=10)
|
1080
1147
|
rc = false
|
1081
1148
|
_saveDefault = @defaultTimeout
|
1149
|
+
_saveRetries = @defaultRetries
|
1082
1150
|
|
1083
1151
|
@defaultTimeout = _timeout
|
1152
|
+
@defaultRetries = 1
|
1153
|
+
|
1154
|
+
i=0
|
1084
1155
|
begin
|
1085
|
-
|
1156
|
+
while i < 4 && !rc
|
1157
|
+
rc = !displayed?(_locator, getDriver(), _timeout)
|
1158
|
+
i+=1
|
1159
|
+
sleep 0.25
|
1160
|
+
end
|
1086
1161
|
rescue => ex
|
1162
|
+
i+=1
|
1087
1163
|
;
|
1088
1164
|
end
|
1089
1165
|
|
1166
|
+
@defaultRetries = _saveDefault
|
1090
1167
|
@defaultTimeout = _saveDefault
|
1091
1168
|
rc
|
1092
1169
|
end
|
@@ -1146,27 +1223,58 @@ class Manager
|
|
1146
1223
|
|
1147
1224
|
def isVisible?(_locator, expected = true, _timeout = 30)
|
1148
1225
|
obj = nil
|
1226
|
+
rc = nil
|
1149
1227
|
|
1228
|
+
begin
|
1229
|
+
@drv.switch_to.default_content
|
1150
1230
|
|
1151
|
-
|
1231
|
+
if _locator.is_a?(Selenium::WebDriver::Element)
|
1232
|
+
obj = _locator
|
1152
1233
|
|
1153
|
-
|
1154
|
-
|
1234
|
+
rc = Selenium::WebDriver::Wait.new(timeout: _timeout).until {
|
1235
|
+
obj.displayed?
|
1236
|
+
}
|
1237
|
+
else
|
1238
|
+
rc = Selenium::WebDriver::Wait.new(timeout: _timeout).until {
|
1239
|
+
obj = findLocator(_locator, @drv)
|
1240
|
+
obj.is_a?(Selenium::WebDriver::Element) && obj.displayed?
|
1241
|
+
}
|
1242
|
+
end
|
1155
1243
|
|
1156
|
-
|
1157
|
-
|
1158
|
-
}
|
1159
|
-
else
|
1160
|
-
rc = Selenium::WebDriver::Wait.new(timeout: _timeout).until {
|
1161
|
-
obj = findLocator(_locator, @drv)
|
1162
|
-
obj.is_a?(Selenium::WebDriver::Element) && obj.displayed?
|
1163
|
-
}
|
1244
|
+
rescue Selenium::WebDriver::Error::TimeOutError
|
1245
|
+
rc = false
|
1164
1246
|
end
|
1165
|
-
|
1166
1247
|
@logger.debug __FILE__ + (__LINE__).to_s + " isVisible?(#{_locator}) : #{rc}"
|
1167
1248
|
rc == expected
|
1168
1249
|
end
|
1169
1250
|
|
1251
|
+
def isNotVisible?(_locator, _timeout = 30)
|
1252
|
+
obj = nil
|
1253
|
+
rc = nil
|
1254
|
+
|
1255
|
+
begin
|
1256
|
+
@drv.switch_to.default_content
|
1257
|
+
|
1258
|
+
if _locator.is_a?(Selenium::WebDriver::Element)
|
1259
|
+
obj = _locator
|
1260
|
+
|
1261
|
+
rc = Selenium::WebDriver::Wait.new(timeout: _timeout).until {
|
1262
|
+
obj.displayed?
|
1263
|
+
}
|
1264
|
+
else
|
1265
|
+
rc = Selenium::WebDriver::Wait.new(timeout: _timeout).until {
|
1266
|
+
obj = findLocator(_locator, @drv)
|
1267
|
+
obj.is_a?(Selenium::WebDriver::Element) && obj.displayed?
|
1268
|
+
}
|
1269
|
+
end
|
1270
|
+
|
1271
|
+
rescue Selenium::WebDriver::Error::TimeOutError
|
1272
|
+
rc = true
|
1273
|
+
end
|
1274
|
+
|
1275
|
+
rc
|
1276
|
+
end
|
1277
|
+
|
1170
1278
|
|
1171
1279
|
def isValue?(_locator, regex=nil, _timeout = 30)
|
1172
1280
|
@logger.debug __FILE__ + (__LINE__).to_s + " isValue?(#{_locator}, #{regex})"
|
@@ -1274,6 +1382,11 @@ class Manager
|
|
1274
1382
|
elsif k.match(/\s*^up/i)
|
1275
1383
|
activeElt = @drv.switch_to.active_element
|
1276
1384
|
activeElt.send_keys(:arrow_up)
|
1385
|
+
elsif k.match(/\s*escape/i)
|
1386
|
+
activeElt = @drv.switch_to.active_element
|
1387
|
+
activeElt.send_keys(:escape)
|
1388
|
+
elsif k.match(/\s*page_down/i)
|
1389
|
+
@drv.action.send_keys(:page_down).perform
|
1277
1390
|
elsif k.match(/\s*__SHIFT_TAB__\s*$/i)
|
1278
1391
|
@drv.action.key_down(:shift).send_keys(:tab).perform
|
1279
1392
|
@drv.action.key_up(:shift).perform
|
data/lib/browza/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: browza
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.3.
|
4
|
+
version: 0.0.3.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- H20Dragon
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-10-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.
|
19
|
+
version: 1.15.4
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 1.
|
26
|
+
version: 1.15.4
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|