webdriver 0.9.1 → 0.13.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/webdriver/connection.rb +9 -1
- data/lib/webdriver/element.rb +8 -0
- data/lib/webdriver/errors.rb +4 -0
- data/lib/webdriver/session.rb +97 -7
- data/lib/webdriver/version.rb +1 -1
- data/lib/webdriver/window.rb +18 -5
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 725390cb120a545ab1ba0a55d5f21430e5d4a90b824883e30aa5223577f61822
|
4
|
+
data.tar.gz: 06c2a1a75ca97e41b7bad105715eb2084a5d34f4acb96ac291e7ff0032150790
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4ba9cfa9aaabffe2c339af6a7389c86ef97e190361bd01dbcdf9a6dd480d80437036814e6a203de4ca13b2a81efd466eb1aac9a306e95825cfb8548a0d0a5e09
|
7
|
+
data.tar.gz: 35f64a452a56318b0be9b2496bcf21670a4d7a977a17dac26f0c021fab1b124e7cec6c93c558a4d873e4553a89a914ffcd582df70a30e929afcb02b0ad78f4ea
|
data/Gemfile.lock
CHANGED
data/lib/webdriver/connection.rb
CHANGED
@@ -42,7 +42,11 @@ module Webdriver
|
|
42
42
|
session_id = response_body.dig "sessionId"
|
43
43
|
value = response_body.dig "value"
|
44
44
|
|
45
|
+
|
45
46
|
case status
|
47
|
+
when nil
|
48
|
+
# application_status_cache
|
49
|
+
value
|
46
50
|
when 0
|
47
51
|
# POST /session has different response structure than other calls
|
48
52
|
if method == :post && path == "/session"
|
@@ -54,6 +58,10 @@ module Webdriver
|
|
54
58
|
raise Webdriver::StaleElementReferenceError
|
55
59
|
when 11
|
56
60
|
raise Webdriver::ElementNotInteractableError
|
61
|
+
when 13
|
62
|
+
raise Webdriver::UnknownErrorUnhandledInspectorError
|
63
|
+
when 28
|
64
|
+
raise Webdriver::ScriptTimeout
|
57
65
|
when 1..nil
|
58
66
|
error_message = value.dig("message")
|
59
67
|
raise "#{status}: #{error_message}"
|
@@ -61,7 +69,7 @@ module Webdriver
|
|
61
69
|
if method == :get && path == "/status"
|
62
70
|
value
|
63
71
|
else
|
64
|
-
raise
|
72
|
+
raise "unknown status: #{status}"
|
65
73
|
end
|
66
74
|
end
|
67
75
|
end
|
data/lib/webdriver/element.rb
CHANGED
data/lib/webdriver/errors.rb
CHANGED
data/lib/webdriver/session.rb
CHANGED
@@ -17,10 +17,97 @@ module Webdriver
|
|
17
17
|
value.map { |id| Webdriver::Window.new id, @connection }
|
18
18
|
end
|
19
19
|
|
20
|
+
def chromium_send_command_and_get_result! opts
|
21
|
+
# cmd: "Browser.getVersion", params: {}
|
22
|
+
@connection.post "chromium/send_command_and_get_result", {}, opts
|
23
|
+
end
|
24
|
+
|
25
|
+
def is_loading?
|
26
|
+
@connection.get "is_loading"
|
27
|
+
end
|
28
|
+
|
29
|
+
def page_freeze!
|
30
|
+
@connection.post "goog/page/freeze"
|
31
|
+
end
|
32
|
+
|
33
|
+
def page_resume!
|
34
|
+
# needs window min/max / timeout to resume
|
35
|
+
@connection.post "goog/page/resume"
|
36
|
+
end
|
37
|
+
|
38
|
+
# https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/Keys
|
39
|
+
# enter "\ue007"
|
40
|
+
def keys= opts
|
41
|
+
@connection.post "keys", {}, opts
|
42
|
+
end
|
43
|
+
|
44
|
+
def moveto! opts
|
45
|
+
# xoffset, yoffset, element
|
46
|
+
@connection.post "moveto", {}, opts
|
47
|
+
end
|
48
|
+
|
49
|
+
def location
|
50
|
+
@connection.get "location"
|
51
|
+
end
|
52
|
+
|
53
|
+
def location! opts
|
54
|
+
#{location: {latitude: 20, longitude:20}}
|
55
|
+
@connection.post "location", {}, opts
|
56
|
+
end
|
57
|
+
|
58
|
+
def reporting_generate_test_report! opts
|
59
|
+
@connection.post "reporting/generate_test_report", {}, opts
|
60
|
+
end
|
61
|
+
|
62
|
+
def timeouts
|
63
|
+
@connection.get "timeouts"
|
64
|
+
end
|
65
|
+
|
66
|
+
def timeouts! opts
|
67
|
+
@connection.post "timeouts", {}, opts
|
68
|
+
self
|
69
|
+
end
|
70
|
+
|
71
|
+
def timeouts_async_script! opts
|
72
|
+
@connection.post "timeouts/async_script", {}, opts
|
73
|
+
end
|
74
|
+
|
75
|
+
def log_types
|
76
|
+
@connection.get "log/types"
|
77
|
+
end
|
78
|
+
|
79
|
+
def log type
|
80
|
+
@connection.post "log", {}, {
|
81
|
+
type: type
|
82
|
+
}
|
83
|
+
end
|
84
|
+
|
85
|
+
def application_cache_status
|
86
|
+
@connection.get "application_cache/status"
|
87
|
+
end
|
88
|
+
|
20
89
|
# not implemented in chromedriver
|
21
|
-
|
22
|
-
|
23
|
-
|
90
|
+
def source
|
91
|
+
@connection.get "source"
|
92
|
+
end
|
93
|
+
|
94
|
+
def chromium_heap_snapshot
|
95
|
+
@connection.get "chromium/heap_snapshot"
|
96
|
+
end
|
97
|
+
|
98
|
+
def chromium_network_conditions
|
99
|
+
@connection.get "chromium/network_conditions"
|
100
|
+
end
|
101
|
+
|
102
|
+
def chromium_network_conditions! conditions
|
103
|
+
@connection.post "chromium/network_conditions", {}, conditions
|
104
|
+
self
|
105
|
+
end
|
106
|
+
|
107
|
+
def chromium_network_conditions_delete!
|
108
|
+
@connection.delete "chromium/network_conditions"
|
109
|
+
self
|
110
|
+
end
|
24
111
|
|
25
112
|
def dismiss_alert!
|
26
113
|
@connection.post "alert/dismiss"
|
@@ -149,15 +236,18 @@ module Webdriver
|
|
149
236
|
end
|
150
237
|
end
|
151
238
|
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
# end
|
239
|
+
def print! opts
|
240
|
+
@connection.post "print", {}, opts
|
241
|
+
end
|
156
242
|
|
157
243
|
def screenshot
|
158
244
|
@connection.get "screenshot"
|
159
245
|
end
|
160
246
|
|
247
|
+
def screenshot_full
|
248
|
+
@connection.get "screenshot/full"
|
249
|
+
end
|
250
|
+
|
161
251
|
# when moving with tab, or clicked
|
162
252
|
def active_element
|
163
253
|
el = @connection.get "element/active"
|
data/lib/webdriver/version.rb
CHANGED
data/lib/webdriver/window.rb
CHANGED
@@ -3,7 +3,20 @@ module Webdriver
|
|
3
3
|
attr_reader :id
|
4
4
|
def initialize(id, connection)
|
5
5
|
@id = id
|
6
|
-
@
|
6
|
+
@session_connection = connection
|
7
|
+
@connection = Webdriver::PrefixConnection.new "window/#{@id}", connection
|
8
|
+
end
|
9
|
+
|
10
|
+
def size
|
11
|
+
@connection.get "size"
|
12
|
+
end
|
13
|
+
|
14
|
+
def position
|
15
|
+
@connection.get "position"
|
16
|
+
end
|
17
|
+
|
18
|
+
def position! opts
|
19
|
+
@connection.post "position", {}, opts
|
7
20
|
end
|
8
21
|
|
9
22
|
def maximize!
|
@@ -12,22 +25,22 @@ module Webdriver
|
|
12
25
|
end
|
13
26
|
|
14
27
|
def minimize!
|
15
|
-
@
|
28
|
+
@session_connection.post "window/minimize"
|
16
29
|
self
|
17
30
|
end
|
18
31
|
|
19
32
|
def rect! width: nil, height: nil, x: nil, y:nil
|
20
|
-
@
|
33
|
+
@session_connection.post "window/rect", {}, {
|
21
34
|
width: width,
|
22
35
|
height: height,
|
23
36
|
x: x,
|
24
37
|
y: y
|
25
|
-
}
|
38
|
+
}
|
26
39
|
self
|
27
40
|
end
|
28
41
|
|
29
42
|
def rect
|
30
|
-
@
|
43
|
+
@session_connection.get "window/rect"
|
31
44
|
end
|
32
45
|
|
33
46
|
def fullscreen!
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: webdriver
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.13.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matti Paksula
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-09-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|