playwright-ruby-client 0.0.4 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +120 -6
  3. data/docs/api_coverage.md +351 -0
  4. data/lib/playwright.rb +9 -0
  5. data/lib/playwright/channel_owner.rb +16 -2
  6. data/lib/playwright/channel_owners/android.rb +10 -1
  7. data/lib/playwright/channel_owners/android_device.rb +163 -0
  8. data/lib/playwright/channel_owners/browser.rb +20 -27
  9. data/lib/playwright/channel_owners/browser_context.rb +51 -0
  10. data/lib/playwright/channel_owners/console_message.rb +0 -4
  11. data/lib/playwright/channel_owners/element_handle.rb +306 -0
  12. data/lib/playwright/channel_owners/frame.rb +473 -7
  13. data/lib/playwright/channel_owners/js_handle.rb +51 -0
  14. data/lib/playwright/channel_owners/page.rb +589 -4
  15. data/lib/playwright/channel_owners/request.rb +98 -0
  16. data/lib/playwright/channel_owners/webkit_browser.rb +1 -1
  17. data/lib/playwright/connection.rb +15 -14
  18. data/lib/playwright/errors.rb +1 -1
  19. data/lib/playwright/event_emitter.rb +17 -1
  20. data/lib/playwright/http_headers.rb +20 -0
  21. data/lib/playwright/input_files.rb +42 -0
  22. data/lib/playwright/input_type.rb +19 -0
  23. data/lib/playwright/input_types/android_input.rb +19 -0
  24. data/lib/playwright/input_types/keyboard.rb +32 -0
  25. data/lib/playwright/input_types/mouse.rb +4 -0
  26. data/lib/playwright/input_types/touchscreen.rb +4 -0
  27. data/lib/playwright/javascript.rb +13 -0
  28. data/lib/playwright/javascript/expression.rb +67 -0
  29. data/lib/playwright/javascript/function.rb +67 -0
  30. data/lib/playwright/javascript/value_parser.rb +75 -0
  31. data/lib/playwright/javascript/value_serializer.rb +54 -0
  32. data/lib/playwright/playwright_api.rb +45 -25
  33. data/lib/playwright/select_option_values.rb +32 -0
  34. data/lib/playwright/timeout_settings.rb +19 -0
  35. data/lib/playwright/url_matcher.rb +19 -0
  36. data/lib/playwright/utils.rb +37 -0
  37. data/lib/playwright/version.rb +1 -1
  38. data/lib/playwright/wait_helper.rb +73 -0
  39. data/lib/playwright_api/accessibility.rb +46 -6
  40. data/lib/playwright_api/android.rb +33 -0
  41. data/lib/playwright_api/android_device.rb +78 -0
  42. data/lib/playwright_api/android_input.rb +25 -0
  43. data/lib/playwright_api/binding_call.rb +18 -0
  44. data/lib/playwright_api/browser.rb +93 -12
  45. data/lib/playwright_api/browser_context.rb +279 -28
  46. data/lib/playwright_api/browser_type.rb +68 -5
  47. data/lib/playwright_api/cdp_session.rb +23 -1
  48. data/lib/playwright_api/chromium_browser_context.rb +26 -0
  49. data/lib/playwright_api/console_message.rb +20 -7
  50. data/lib/playwright_api/dialog.rb +48 -2
  51. data/lib/playwright_api/download.rb +19 -4
  52. data/lib/playwright_api/element_handle.rb +278 -104
  53. data/lib/playwright_api/file_chooser.rb +20 -3
  54. data/lib/playwright_api/frame.rb +452 -147
  55. data/lib/playwright_api/js_handle.rb +78 -19
  56. data/lib/playwright_api/keyboard.rb +99 -9
  57. data/lib/playwright_api/mouse.rb +22 -0
  58. data/lib/playwright_api/page.rb +864 -222
  59. data/lib/playwright_api/playwright.rb +116 -14
  60. data/lib/playwright_api/request.rb +86 -24
  61. data/lib/playwright_api/response.rb +18 -7
  62. data/lib/playwright_api/route.rb +49 -0
  63. data/lib/playwright_api/selectors.rb +28 -2
  64. data/lib/playwright_api/video.rb +8 -0
  65. data/lib/playwright_api/web_socket.rb +0 -8
  66. data/lib/playwright_api/worker.rb +25 -13
  67. data/playwright.gemspec +3 -0
  68. metadata +66 -2
@@ -1,6 +1,6 @@
1
1
  module Playwright
2
- # Selectors can be used to install custom selector engines. See
3
- # [Working with selectors](./selectors.md#working-with-selectors) for more information.
2
+ # Selectors can be used to install custom selector engines. See [Working with selectors](./selectors.md) for more
3
+ # information.
4
4
  class Selectors < PlaywrightApi
5
5
 
6
6
  # An example of registering selector engine that queries elements based on a tag name:
@@ -40,8 +40,34 @@ module Playwright
40
40
  # await browser.close();
41
41
  # })();
42
42
  # ```
43
+ #
44
+ # ```python async
45
+ # # FIXME: add snippet
46
+ # ```
47
+ #
48
+ # ```python sync
49
+ # # FIXME: add snippet
50
+ # ```
43
51
  def register(name, script, contentScript: nil)
44
52
  raise NotImplementedError.new('register is not implemented yet.')
45
53
  end
54
+
55
+ # -- inherited from EventEmitter --
56
+ # @nodoc
57
+ def on(event, callback)
58
+ wrap_impl(@impl.on(unwrap_impl(event), unwrap_impl(callback)))
59
+ end
60
+
61
+ # -- inherited from EventEmitter --
62
+ # @nodoc
63
+ def off(event, callback)
64
+ wrap_impl(@impl.off(unwrap_impl(event), unwrap_impl(callback)))
65
+ end
66
+
67
+ # -- inherited from EventEmitter --
68
+ # @nodoc
69
+ def once(event, callback)
70
+ wrap_impl(@impl.once(unwrap_impl(event), unwrap_impl(callback)))
71
+ end
46
72
  end
47
73
  end
@@ -5,6 +5,14 @@ module Playwright
5
5
  # ```js
6
6
  # console.log(await page.video().path());
7
7
  # ```
8
+ #
9
+ # ```python async
10
+ # print(await page.video.path())
11
+ # ```
12
+ #
13
+ # ```python sync
14
+ # print(page.video.path())
15
+ # ```
8
16
  class Video < PlaywrightApi
9
17
 
10
18
  # Returns the file system path this video will be recorded to. The video is guaranteed to be written to the filesystem
@@ -11,13 +11,5 @@ module Playwright
11
11
  def url
12
12
  raise NotImplementedError.new('url is not implemented yet.')
13
13
  end
14
-
15
- # Returns the event data value.
16
- #
17
- # Waits for event to fire and passes its value into the predicate function. Returns when the predicate returns truthy
18
- # value. Will throw an error if the webSocket is closed before the event is fired.
19
- def wait_for_event(event, optionsOrPredicate: nil)
20
- raise NotImplementedError.new('wait_for_event is not implemented yet.')
21
- end
22
14
  end
23
15
  end
@@ -14,28 +14,40 @@ module Playwright
14
14
  # for (const worker of page.workers())
15
15
  # console.log(' ' + worker.url());
16
16
  # ```
17
+ #
18
+ # ```py
19
+ # def handle_worker(worker):
20
+ # print("worker created: " + worker.url)
21
+ # worker.on("close", lambda: print("worker destroyed: " + worker.url))
22
+ #
23
+ # page.on('worker', handle_worker)
24
+ #
25
+ # print("current workers:")
26
+ # for worker in page.workers:
27
+ # print(" " + worker.url)
28
+ # ```
17
29
  class Worker < PlaywrightApi
18
30
 
19
- # Returns the return value of `pageFunction`
31
+ # Returns the return value of `expression`.
20
32
  #
21
- # If the function passed to the `worker.evaluate` returns a [Promise], then `worker.evaluate` would wait for the promise
22
- # to resolve and return its value.
33
+ # If the function passed to the [`method: Worker.evaluate`] returns a [Promise], then [`method: Worker.evaluate`] would
34
+ # wait for the promise to resolve and return its value.
23
35
  #
24
- # If the function passed to the `worker.evaluate` returns a non-[Serializable] value, then `worker.evaluate` returns
25
- # `undefined`. DevTools Protocol also supports transferring some additional values that are not serializable by `JSON`:
26
- # `-0`, `NaN`, `Infinity`, `-Infinity`, and bigint literals.
27
- def evaluate(pageFunction, arg: nil)
36
+ # If the function passed to the [`method: Worker.evaluate`] returns a non-[Serializable] value, then
37
+ # [`method: Worker.evaluate`] returns `undefined`. Playwright also supports transferring some additional values that are
38
+ # not serializable by `JSON`: `-0`, `NaN`, `Infinity`, `-Infinity`.
39
+ def evaluate(expression, arg: nil)
28
40
  raise NotImplementedError.new('evaluate is not implemented yet.')
29
41
  end
30
42
 
31
- # Returns the return value of `pageFunction` as in-page object (JSHandle).
43
+ # Returns the return value of `expression` as a `JSHandle`.
32
44
  #
33
- # The only difference between `worker.evaluate` and `worker.evaluateHandle` is that `worker.evaluateHandle` returns
34
- # in-page object (JSHandle).
45
+ # The only difference between [`method: Worker.evaluate`] and [`method: Worker.evaluateHandle`] is that
46
+ # [`method: Worker.evaluateHandle`] returns `JSHandle`.
35
47
  #
36
- # If the function passed to the `worker.evaluateHandle` returns a [Promise], then `worker.evaluateHandle` would wait for
37
- # the promise to resolve and return its value.
38
- def evaluate_handle(pageFunction, arg: nil)
48
+ # If the function passed to the [`method: Worker.evaluateHandle`] returns a [Promise], then
49
+ # [`method: Worker.evaluateHandle`] would wait for the promise to resolve and return its value.
50
+ def evaluate_handle(expression, arg: nil)
39
51
  raise NotImplementedError.new('evaluate_handle is not implemented yet.')
40
52
  end
41
53
 
data/playwright.gemspec CHANGED
@@ -25,6 +25,7 @@ Gem::Specification.new do |spec|
25
25
  spec.require_paths = ['lib']
26
26
 
27
27
  spec.add_dependency 'concurrent-ruby'
28
+ spec.add_dependency 'mime-types', '>= 3.0'
28
29
  spec.add_development_dependency 'bundler', '~> 2.2.3'
29
30
  spec.add_development_dependency 'dry-inflector'
30
31
  spec.add_development_dependency 'pry-byebug'
@@ -32,4 +33,6 @@ Gem::Specification.new do |spec|
32
33
  spec.add_development_dependency 'rspec', '~> 3.10.0 '
33
34
  spec.add_development_dependency 'rubocop', '~> 1.7.0'
34
35
  spec.add_development_dependency 'rubocop-rspec'
36
+ spec.add_development_dependency 'sinatra'
37
+ spec.add_development_dependency 'webrick'
35
38
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: playwright-ruby-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - YusukeIwaki
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-01-12 00:00:00.000000000 Z
11
+ date: 2021-02-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: mime-types
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '3.0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '3.0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: bundler
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -122,6 +136,34 @@ dependencies:
122
136
  - - ">="
123
137
  - !ruby/object:Gem::Version
124
138
  version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: sinatra
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: webrick
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
125
167
  description:
126
168
  email:
127
169
  - q7w8e9w8q7w8e9@yahoo.co.jp
@@ -137,10 +179,12 @@ files:
137
179
  - Rakefile
138
180
  - bin/console
139
181
  - bin/setup
182
+ - docs/api_coverage.md
140
183
  - lib/playwright.rb
141
184
  - lib/playwright/channel.rb
142
185
  - lib/playwright/channel_owner.rb
143
186
  - lib/playwright/channel_owners/android.rb
187
+ - lib/playwright/channel_owners/android_device.rb
144
188
  - lib/playwright/channel_owners/binding_call.rb
145
189
  - lib/playwright/channel_owners/browser.rb
146
190
  - lib/playwright/channel_owners/browser_context.rb
@@ -163,10 +207,30 @@ files:
163
207
  - lib/playwright/errors.rb
164
208
  - lib/playwright/event_emitter.rb
165
209
  - lib/playwright/events.rb
210
+ - lib/playwright/http_headers.rb
211
+ - lib/playwright/input_files.rb
212
+ - lib/playwright/input_type.rb
213
+ - lib/playwright/input_types/android_input.rb
214
+ - lib/playwright/input_types/keyboard.rb
215
+ - lib/playwright/input_types/mouse.rb
216
+ - lib/playwright/input_types/touchscreen.rb
217
+ - lib/playwright/javascript.rb
218
+ - lib/playwright/javascript/expression.rb
219
+ - lib/playwright/javascript/function.rb
220
+ - lib/playwright/javascript/value_parser.rb
221
+ - lib/playwright/javascript/value_serializer.rb
166
222
  - lib/playwright/playwright_api.rb
223
+ - lib/playwright/select_option_values.rb
224
+ - lib/playwright/timeout_settings.rb
167
225
  - lib/playwright/transport.rb
226
+ - lib/playwright/url_matcher.rb
227
+ - lib/playwright/utils.rb
168
228
  - lib/playwright/version.rb
229
+ - lib/playwright/wait_helper.rb
169
230
  - lib/playwright_api/accessibility.rb
231
+ - lib/playwright_api/android.rb
232
+ - lib/playwright_api/android_device.rb
233
+ - lib/playwright_api/android_input.rb
170
234
  - lib/playwright_api/binding_call.rb
171
235
  - lib/playwright_api/browser.rb
172
236
  - lib/playwright_api/browser_context.rb