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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 231e634ca374f5b7bfcdfac83ebacad256fbcd14ff5bf85d953bb69c88a3e867
4
- data.tar.gz: c094830f38527351332f4eb97cbff24cfb0999bb884e9a7474579c285f1b4754
3
+ metadata.gz: 725390cb120a545ab1ba0a55d5f21430e5d4a90b824883e30aa5223577f61822
4
+ data.tar.gz: 06c2a1a75ca97e41b7bad105715eb2084a5d34f4acb96ac291e7ff0032150790
5
5
  SHA512:
6
- metadata.gz: ad451c9419316d6d2ce8abee8d8c17d1594e4fe3941dd5b897fde7d2f33f60efc25540d4e628f294f3c24e79e0e2d474830e58ba6c646cdbc50e0b77158c7bd1
7
- data.tar.gz: a748ee63ca30d1c4869fb0caf0f962ec4594eb1c2f896b1072d04bd342c4a1fa393aaffce4dc262fb60c96e2c28242d2e4ec9ed6654b761c854ec6df16f3fb1e
6
+ metadata.gz: 4ba9cfa9aaabffe2c339af6a7389c86ef97e190361bd01dbcdf9a6dd480d80437036814e6a203de4ca13b2a81efd466eb1aac9a306e95825cfb8548a0d0a5e09
7
+ data.tar.gz: 35f64a452a56318b0be9b2496bcf21670a4d7a977a17dac26f0c021fab1b124e7cec6c93c558a4d873e4553a89a914ffcd582df70a30e929afcb02b0ad78f4ea
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- webdriver (0.9.1)
4
+ webdriver (0.13.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -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 [:unknown, response_body]
72
+ raise "unknown status: #{status}"
65
73
  end
66
74
  end
67
75
  end
@@ -14,6 +14,14 @@ module Webdriver
14
14
  @id == other.id
15
15
  end
16
16
 
17
+ def location_in_view
18
+ @connection.get "location_in_view"
19
+ end
20
+
21
+ def size
22
+ @connection.get "size"
23
+ end
24
+
17
25
  def screenshot
18
26
  @connection.get "screenshot"
19
27
  end
@@ -3,4 +3,8 @@ module Webdriver
3
3
  class StaleElementReferenceError < StandardError; end
4
4
  # 11
5
5
  class ElementNotInteractableError < StandardError; end
6
+ # 13
7
+ class UnknownErrorUnhandledInspectorError < StandardError; end
8
+ # 28
9
+ class ScriptTimeout < StandardError; end
6
10
  end
@@ -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
- # def source
22
- # @connection.post "source"
23
- # end
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
- # not implemented in chromedriver
153
- # def print!
154
- # @connection.post "print"
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"
@@ -1,3 +1,3 @@
1
1
  module Webdriver
2
- VERSION = "0.9.1"
2
+ VERSION = "0.13.0"
3
3
  end
@@ -3,7 +3,20 @@ module Webdriver
3
3
  attr_reader :id
4
4
  def initialize(id, connection)
5
5
  @id = id
6
- @connection = Webdriver::PrefixConnection.new "window", connection
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
- @connection.post "minimize"
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
- @connection.post("rect", {}, {
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
- @connection.get "rect"
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.9.1
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-06-15 00:00:00.000000000 Z
11
+ date: 2020-09-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler