playwright-ruby-client 0.0.4 → 0.0.9

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.
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