playwright-ruby-client 0.2.1 → 0.5.5

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 (71) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +17 -5
  3. data/docs/api_coverage.md +116 -74
  4. data/lib/playwright.rb +48 -9
  5. data/lib/playwright/channel.rb +12 -2
  6. data/lib/playwright/channel_owners/artifact.rb +30 -0
  7. data/lib/playwright/channel_owners/binding_call.rb +3 -0
  8. data/lib/playwright/channel_owners/browser.rb +21 -0
  9. data/lib/playwright/channel_owners/browser_context.rb +154 -3
  10. data/lib/playwright/channel_owners/browser_type.rb +28 -0
  11. data/lib/playwright/channel_owners/dialog.rb +28 -0
  12. data/lib/playwright/channel_owners/element_handle.rb +7 -7
  13. data/lib/playwright/channel_owners/frame.rb +26 -5
  14. data/lib/playwright/channel_owners/js_handle.rb +2 -2
  15. data/lib/playwright/channel_owners/page.rb +125 -25
  16. data/lib/playwright/channel_owners/playwright.rb +24 -27
  17. data/lib/playwright/channel_owners/request.rb +26 -2
  18. data/lib/playwright/channel_owners/response.rb +60 -0
  19. data/lib/playwright/channel_owners/route.rb +78 -0
  20. data/lib/playwright/channel_owners/selectors.rb +19 -1
  21. data/lib/playwright/channel_owners/stream.rb +15 -0
  22. data/lib/playwright/connection.rb +11 -32
  23. data/lib/playwright/download.rb +27 -0
  24. data/lib/playwright/errors.rb +6 -0
  25. data/lib/playwright/events.rb +2 -5
  26. data/lib/playwright/keyboard_impl.rb +1 -1
  27. data/lib/playwright/mouse_impl.rb +41 -0
  28. data/lib/playwright/playwright_api.rb +3 -1
  29. data/lib/playwright/route_handler_entry.rb +28 -0
  30. data/lib/playwright/select_option_values.rb +31 -22
  31. data/lib/playwright/transport.rb +29 -7
  32. data/lib/playwright/url_matcher.rb +1 -1
  33. data/lib/playwright/utils.rb +9 -0
  34. data/lib/playwright/version.rb +1 -1
  35. data/lib/playwright/video.rb +51 -0
  36. data/lib/playwright/wait_helper.rb +2 -2
  37. data/lib/playwright_api/accessibility.rb +39 -1
  38. data/lib/playwright_api/android.rb +74 -2
  39. data/lib/playwright_api/android_device.rb +141 -23
  40. data/lib/playwright_api/android_input.rb +17 -13
  41. data/lib/playwright_api/android_socket.rb +16 -0
  42. data/lib/playwright_api/android_web_view.rb +21 -0
  43. data/lib/playwright_api/browser.rb +77 -2
  44. data/lib/playwright_api/browser_context.rb +178 -25
  45. data/lib/playwright_api/browser_type.rb +40 -9
  46. data/lib/playwright_api/dialog.rb +54 -7
  47. data/lib/playwright_api/element_handle.rb +105 -31
  48. data/lib/playwright_api/file_chooser.rb +6 -1
  49. data/lib/playwright_api/frame.rb +229 -36
  50. data/lib/playwright_api/js_handle.rb +23 -0
  51. data/lib/playwright_api/keyboard.rb +48 -1
  52. data/lib/playwright_api/mouse.rb +26 -5
  53. data/lib/playwright_api/page.rb +491 -81
  54. data/lib/playwright_api/playwright.rb +21 -4
  55. data/lib/playwright_api/request.rb +30 -2
  56. data/lib/playwright_api/response.rb +21 -11
  57. data/lib/playwright_api/route.rb +51 -5
  58. data/lib/playwright_api/selectors.rb +27 -1
  59. data/lib/playwright_api/touchscreen.rb +1 -1
  60. data/lib/playwright_api/worker.rb +25 -1
  61. data/playwright.gemspec +4 -2
  62. metadata +42 -14
  63. data/lib/playwright/channel_owners/chromium_browser.rb +0 -8
  64. data/lib/playwright/channel_owners/chromium_browser_context.rb +0 -8
  65. data/lib/playwright/channel_owners/download.rb +0 -27
  66. data/lib/playwright/channel_owners/firefox_browser.rb +0 -8
  67. data/lib/playwright/channel_owners/webkit_browser.rb +0 -8
  68. data/lib/playwright_api/binding_call.rb +0 -27
  69. data/lib/playwright_api/chromium_browser_context.rb +0 -59
  70. data/lib/playwright_api/download.rb +0 -95
  71. data/lib/playwright_api/video.rb +0 -24
@@ -15,6 +15,23 @@ module Playwright
15
15
  # })();
16
16
  # ```
17
17
  #
18
+ # ```java
19
+ # import com.microsoft.playwright.*;
20
+ #
21
+ # public class Example {
22
+ # public static void main(String[] args) {
23
+ # try (Playwright playwright = Playwright.create()) {
24
+ # BrowserType chromium = playwright.chromium();
25
+ # Browser browser = chromium.launch();
26
+ # Page page = browser.newPage();
27
+ # page.navigate("http://example.com");
28
+ # // other actions...
29
+ # browser.close();
30
+ # }
31
+ # }
32
+ # }
33
+ # ```
34
+ #
18
35
  # ```python async
19
36
  # import asyncio
20
37
  # from playwright.async_api import async_playwright
@@ -49,7 +66,7 @@ module Playwright
49
66
  # ```
50
67
  class Playwright < PlaywrightApi
51
68
 
52
- # This object can be used to launch or connect to Chromium, returning instances of `ChromiumBrowser`.
69
+ # This object can be used to launch or connect to Chromium, returning instances of `Browser`.
53
70
  def chromium # property
54
71
  wrap_impl(@impl.chromium)
55
72
  end
@@ -113,7 +130,7 @@ module Playwright
113
130
  wrap_impl(@impl.devices)
114
131
  end
115
132
 
116
- # This object can be used to launch or connect to Firefox, returning instances of `FirefoxBrowser`.
133
+ # This object can be used to launch or connect to Firefox, returning instances of `Browser`.
117
134
  def firefox # property
118
135
  wrap_impl(@impl.firefox)
119
136
  end
@@ -121,10 +138,10 @@ module Playwright
121
138
  # Selectors can be used to install custom selector engines. See [Working with selectors](./selectors.md) for more
122
139
  # information.
123
140
  def selectors # property
124
- raise NotImplementedError.new('selectors is not implemented yet.')
141
+ wrap_impl(@impl.selectors)
125
142
  end
126
143
 
127
- # This object can be used to launch or connect to WebKit, returning instances of `WebKitBrowser`.
144
+ # This object can be used to launch or connect to WebKit, returning instances of `Browser`.
128
145
  def webkit # property
129
146
  wrap_impl(@impl.webkit)
130
147
  end
@@ -2,10 +2,10 @@ module Playwright
2
2
  # Whenever the page sends a request for a network resource the following sequence of events are emitted by `Page`:
3
3
  # - [`event: Page.request`] emitted when the request is issued by the page.
4
4
  # - [`event: Page.response`] emitted when/if the response status and headers are received for the request.
5
- # - [`event: Page.requestfinished`] emitted when the response body is downloaded and the request is complete.
5
+ # - [`event: Page.requestFinished`] emitted when the response body is downloaded and the request is complete.
6
6
  #
7
7
  # If request fails at some point, then instead of `'requestfinished'` event (and possibly instead of 'response' event),
8
- # the [`event: Page.requestfailed`] event is emitted.
8
+ # the [`event: Page.requestFailed`] event is emitted.
9
9
  #
10
10
  # > NOTE: HTTP Error responses, such as 404 or 503, are still successful responses from HTTP standpoint, so request will
11
11
  # complete with `'requestfinished'` event.
@@ -25,6 +25,12 @@ module Playwright
25
25
  # });
26
26
  # ```
27
27
  #
28
+ # ```java
29
+ # page.onRequestFailed(request -> {
30
+ # System.out.println(request.url() + " " + request.failure());
31
+ # });
32
+ # ```
33
+ #
28
34
  # ```py
29
35
  # page.on("requestfailed", lambda request: print(request.url + " " + request.failure))
30
36
  # ```
@@ -84,6 +90,11 @@ module Playwright
84
90
  # console.log(response.request().redirectedFrom().url()); // 'http://example.com'
85
91
  # ```
86
92
  #
93
+ # ```java
94
+ # Response response = page.navigate("http://example.com");
95
+ # System.out.println(response.request().redirectedFrom().url()); // "http://example.com"
96
+ # ```
97
+ #
87
98
  # ```python async
88
99
  # response = await page.goto("http://example.com")
89
100
  # print(response.request.redirected_from.url) # "http://example.com"
@@ -102,6 +113,11 @@ module Playwright
102
113
  # console.log(response.request().redirectedFrom()); // null
103
114
  # ```
104
115
  #
116
+ # ```java
117
+ # Response response = page.navigate("https://google.com");
118
+ # System.out.println(response.request().redirectedFrom()); // null
119
+ # ```
120
+ #
105
121
  # ```python async
106
122
  # response = await page.goto("https://google.com")
107
123
  # print(response.request.redirected_from) # None
@@ -124,6 +140,10 @@ module Playwright
124
140
  # console.log(request.redirectedFrom().redirectedTo() === request); // true
125
141
  # ```
126
142
  #
143
+ # ```java
144
+ # System.out.println(request.redirectedFrom().redirectedTo() == request); // true
145
+ # ```
146
+ #
127
147
  # ```py
128
148
  # assert request.redirected_from.redirected_to == request
129
149
  # ```
@@ -156,6 +176,14 @@ module Playwright
156
176
  # console.log(request.timing());
157
177
  # ```
158
178
  #
179
+ # ```java
180
+ # page.onRequestFinished(request -> {
181
+ # Timing timing = request.timing();
182
+ # System.out.println(timing.responseEnd - timing.startTime);
183
+ # });
184
+ # page.navigate("http://example.com");
185
+ # ```
186
+ #
159
187
  # ```python async
160
188
  # async with page.expect_event("requestfinished") as request_info:
161
189
  # await page.goto("http://example.com")
@@ -4,59 +4,69 @@ module Playwright
4
4
 
5
5
  # Returns the buffer with response body.
6
6
  def body
7
- raise NotImplementedError.new('body is not implemented yet.')
7
+ wrap_impl(@impl.body)
8
8
  end
9
9
 
10
10
  # Waits for this response to finish, returns failure error if request failed.
11
11
  def finished
12
- raise NotImplementedError.new('finished is not implemented yet.')
12
+ wrap_impl(@impl.finished)
13
13
  end
14
14
 
15
15
  # Returns the `Frame` that initiated this response.
16
16
  def frame
17
- raise NotImplementedError.new('frame is not implemented yet.')
17
+ wrap_impl(@impl.frame)
18
18
  end
19
19
 
20
20
  # Returns the object with HTTP headers associated with the response. All header names are lower-case.
21
21
  def headers
22
- raise NotImplementedError.new('headers is not implemented yet.')
22
+ wrap_impl(@impl.headers)
23
23
  end
24
24
 
25
25
  # Returns the JSON representation of response body.
26
26
  #
27
27
  # This method will throw if the response body is not parsable via `JSON.parse`.
28
28
  def json
29
- raise NotImplementedError.new('json is not implemented yet.')
29
+ wrap_impl(@impl.json)
30
30
  end
31
31
 
32
32
  # Contains a boolean stating whether the response was successful (status in the range 200-299) or not.
33
33
  def ok
34
- raise NotImplementedError.new('ok is not implemented yet.')
34
+ wrap_impl(@impl.ok)
35
35
  end
36
36
 
37
37
  # Returns the matching `Request` object.
38
38
  def request
39
- raise NotImplementedError.new('request is not implemented yet.')
39
+ wrap_impl(@impl.request)
40
40
  end
41
41
 
42
42
  # Contains the status code of the response (e.g., 200 for a success).
43
43
  def status
44
- raise NotImplementedError.new('status is not implemented yet.')
44
+ wrap_impl(@impl.status)
45
45
  end
46
46
 
47
47
  # Contains the status text of the response (e.g. usually an "OK" for a success).
48
48
  def status_text
49
- raise NotImplementedError.new('status_text is not implemented yet.')
49
+ wrap_impl(@impl.status_text)
50
50
  end
51
51
 
52
52
  # Returns the text representation of response body.
53
53
  def text
54
- raise NotImplementedError.new('text is not implemented yet.')
54
+ wrap_impl(@impl.text)
55
55
  end
56
56
 
57
57
  # Contains the URL of the response.
58
58
  def url
59
- raise NotImplementedError.new('url is not implemented yet.')
59
+ wrap_impl(@impl.url)
60
+ end
61
+
62
+ # @nodoc
63
+ def ok?
64
+ wrap_impl(@impl.ok?)
65
+ end
66
+
67
+ # @nodoc
68
+ def after_initialize
69
+ wrap_impl(@impl.after_initialize)
60
70
  end
61
71
 
62
72
  # -- inherited from EventEmitter --
@@ -5,7 +5,7 @@ module Playwright
5
5
 
6
6
  # Aborts the route's request.
7
7
  def abort(errorCode: nil)
8
- raise NotImplementedError.new('abort is not implemented yet.')
8
+ wrap_impl(@impl.abort(errorCode: unwrap_impl(errorCode)))
9
9
  end
10
10
 
11
11
  # Continues route's request with optional overrides.
@@ -23,6 +23,16 @@ module Playwright
23
23
  # });
24
24
  # ```
25
25
  #
26
+ # ```java
27
+ # page.route("**/*", route -> {
28
+ # // Override headers
29
+ # Map<String, String> headers = new HashMap<>(route.request().headers());
30
+ # headers.put("foo", "bar"); // set "foo" header
31
+ # headers.remove("origin"); // remove "origin" header
32
+ # route.resume(new Route.ResumeOptions().setHeaders(headers));
33
+ # });
34
+ # ```
35
+ #
26
36
  # ```python async
27
37
  # async def handle(route, request):
28
38
  # # override headers
@@ -48,8 +58,8 @@ module Playwright
48
58
  # }
49
59
  # page.route("**/*", handle)
50
60
  # ```
51
- def continue_(headers: nil, method: nil, postData: nil, url: nil)
52
- raise NotImplementedError.new('continue_ is not implemented yet.')
61
+ def continue(headers: nil, method: nil, postData: nil, url: nil)
62
+ wrap_impl(@impl.continue(headers: unwrap_impl(headers), method: unwrap_impl(method), postData: unwrap_impl(postData), url: unwrap_impl(url)))
53
63
  end
54
64
 
55
65
  # Fulfills route's request with given response.
@@ -67,6 +77,15 @@ module Playwright
67
77
  # });
68
78
  # ```
69
79
  #
80
+ # ```java
81
+ # page.route("**/*", route -> {
82
+ # route.fulfill(new Route.FulfillOptions()
83
+ # .setStatus(404)
84
+ # .setContentType("text/plain")
85
+ # .setBody("Not Found!"));
86
+ # });
87
+ # ```
88
+ #
70
89
  # ```python async
71
90
  # await page.route("**/*", lambda route: route.fulfill(
72
91
  # status=404,
@@ -88,6 +107,11 @@ module Playwright
88
107
  # await page.route('**/xhr_endpoint', route => route.fulfill({ path: 'mock_data.json' }));
89
108
  # ```
90
109
  #
110
+ # ```java
111
+ # page.route("**/xhr_endpoint", route -> route.fulfill(
112
+ # new Route.FulfillOptions().setPath(Paths.get("mock_data.json")));
113
+ # ```
114
+ #
91
115
  # ```python async
92
116
  # await page.route("**/xhr_endpoint", lambda route: route.fulfill(path="mock_data.json"))
93
117
  # ```
@@ -101,12 +125,34 @@ module Playwright
101
125
  headers: nil,
102
126
  path: nil,
103
127
  status: nil)
104
- raise NotImplementedError.new('fulfill is not implemented yet.')
128
+ wrap_impl(@impl.fulfill(body: unwrap_impl(body), contentType: unwrap_impl(contentType), headers: unwrap_impl(headers), path: unwrap_impl(path), status: unwrap_impl(status)))
105
129
  end
106
130
 
107
131
  # A request to be routed.
108
132
  def request
109
- raise NotImplementedError.new('request is not implemented yet.')
133
+ wrap_impl(@impl.request)
134
+ end
135
+
136
+ # -- inherited from EventEmitter --
137
+ # @nodoc
138
+ def once(event, callback)
139
+ event_emitter_proxy.once(event, callback)
140
+ end
141
+
142
+ # -- inherited from EventEmitter --
143
+ # @nodoc
144
+ def on(event, callback)
145
+ event_emitter_proxy.on(event, callback)
146
+ end
147
+
148
+ # -- inherited from EventEmitter --
149
+ # @nodoc
150
+ def off(event, callback)
151
+ event_emitter_proxy.off(event, callback)
152
+ end
153
+
154
+ private def event_emitter_proxy
155
+ @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
110
156
  end
111
157
  end
112
158
  end
@@ -41,6 +41,32 @@ module Playwright
41
41
  # })();
42
42
  # ```
43
43
  #
44
+ # ```java
45
+ # // Script that evaluates to a selector engine instance.
46
+ # String createTagNameEngine = "{\n" +
47
+ # " // Returns the first element matching given selector in the root's subtree.\n" +
48
+ # " query(root, selector) {\n" +
49
+ # " return root.querySelector(selector);\n" +
50
+ # " },\n" +
51
+ # " // Returns all elements matching given selector in the root's subtree.\n" +
52
+ # " queryAll(root, selector) {\n" +
53
+ # " return Array.from(root.querySelectorAll(selector));\n" +
54
+ # " }\n" +
55
+ # "}";
56
+ # // Register the engine. Selectors will be prefixed with "tag=".
57
+ # playwright.selectors().register("tag", createTagNameEngine);
58
+ # Browser browser = playwright.firefox().launch();
59
+ # Page page = browser.newPage();
60
+ # page.setContent("<div><button>Click me</button></div>");
61
+ # // Use the selector prefixed with its name.
62
+ # ElementHandle button = page.querySelector("tag=button");
63
+ # // Combine it with other selector engines.
64
+ # page.click("tag=div >> text=\"Click me\"");
65
+ # // Can use it in any methods supporting selectors.
66
+ # int buttonCount = (int) page.evalOnSelectorAll("tag=button", "buttons => buttons.length");
67
+ # browser.close();
68
+ # ```
69
+ #
44
70
  # ```python async
45
71
  # # FIXME: add snippet
46
72
  # ```
@@ -49,7 +75,7 @@ module Playwright
49
75
  # # FIXME: add snippet
50
76
  # ```
51
77
  def register(name, contentScript: nil, path: nil, script: nil)
52
- raise NotImplementedError.new('register is not implemented yet.')
78
+ wrap_impl(@impl.register(unwrap_impl(name), contentScript: unwrap_impl(contentScript), path: unwrap_impl(path), script: unwrap_impl(script)))
53
79
  end
54
80
 
55
81
  # -- inherited from EventEmitter --
@@ -1,6 +1,6 @@
1
1
  module Playwright
2
2
  # The Touchscreen class operates in main-frame CSS pixels relative to the top-left corner of the viewport. Methods on the
3
- # touchscreen can only be used in browser contexts that have been intialized with `hasTouch` set to true.
3
+ # touchscreen can only be used in browser contexts that have been initialized with `hasTouch` set to true.
4
4
  class Touchscreen < PlaywrightApi
5
5
 
6
6
  # Dispatches a `touchstart` and `touchend` event with a single touch at the position (`x`,`y`).
@@ -15,6 +15,16 @@ module Playwright
15
15
  # console.log(' ' + worker.url());
16
16
  # ```
17
17
  #
18
+ # ```java
19
+ # page.onWorker(worker -> {
20
+ # System.out.println("Worker created: " + worker.url());
21
+ # worker.onClose(worker1 -> System.out.println("Worker destroyed: " + worker1.url()));
22
+ # });
23
+ # System.out.println("Current workers:");
24
+ # for (Worker worker : page.workers())
25
+ # System.out.println(" " + worker.url());
26
+ # ```
27
+ #
18
28
  # ```py
19
29
  # def handle_worker(worker):
20
30
  # print("worker created: " + worker.url)
@@ -26,6 +36,20 @@ module Playwright
26
36
  # for worker in page.workers:
27
37
  # print(" " + worker.url)
28
38
  # ```
39
+ #
40
+ # ```csharp
41
+ # Page.Worker += (_, worker) =>
42
+ # {
43
+ # Console.WriteLine($"Worker created: {worker.Url}");
44
+ # worker.Close += (_, _) => Console.WriteLine($"Worker closed {worker.Url}");
45
+ # };
46
+ #
47
+ # Console.WriteLine("Current Workers:");
48
+ # foreach(var pageWorker in Page.Workers)
49
+ # {
50
+ # Console.WriteLine($"\tWorker: {pageWorker.Url}");
51
+ # }
52
+ # ```
29
53
  class Worker < PlaywrightApi
30
54
 
31
55
  # Returns the return value of `expression`.
@@ -34,7 +58,7 @@ module Playwright
34
58
  # wait for the promise to resolve and return its value.
35
59
  #
36
60
  # 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
61
+ # [`method: Worker.evaluate`] returns `undefined`. Playwright also supports transferring some additional values that are
38
62
  # not serializable by `JSON`: `-0`, `NaN`, `Infinity`, `-Infinity`.
39
63
  def evaluate(expression, arg: nil)
40
64
  raise NotImplementedError.new('evaluate is not implemented yet.')
data/playwright.gemspec CHANGED
@@ -17,20 +17,22 @@ Gem::Specification.new do |spec|
17
17
 
18
18
  spec.files = Dir.chdir(File.expand_path(__dir__)) do
19
19
  `git ls-files -z`.split("\x0").reject do |f|
20
- f.match(%r{^(test|spec|features)/}) || f.include?(".git") || f.start_with?("development/")
20
+ f.match(%r{^(test|spec|features)/}) || f.include?(".git") || f.include?(".circleci") || f.start_with?("development/")
21
21
  end
22
22
  end + `find lib/playwright_api -name *.rb -type f`.split("\n")
23
23
  spec.bindir = 'exe'
24
24
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
25
25
  spec.require_paths = ['lib']
26
26
 
27
- spec.add_dependency 'concurrent-ruby'
27
+ spec.add_dependency 'concurrent-ruby', '>= 1.1.6'
28
28
  spec.add_dependency 'mime-types', '>= 3.0'
29
29
  spec.add_development_dependency 'bundler', '~> 2.2.3'
30
+ spec.add_development_dependency 'chunky_png'
30
31
  spec.add_development_dependency 'dry-inflector'
31
32
  spec.add_development_dependency 'pry-byebug'
32
33
  spec.add_development_dependency 'rake', '~> 13.0.3'
33
34
  spec.add_development_dependency 'rspec', '~> 3.10.0 '
35
+ spec.add_development_dependency 'rspec_junit_formatter' # for CircleCI.
34
36
  spec.add_development_dependency 'rubocop', '~> 1.7.0'
35
37
  spec.add_development_dependency 'rubocop-rspec'
36
38
  spec.add_development_dependency 'sinatra'
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.2.1
4
+ version: 0.5.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - YusukeIwaki
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-02-21 00:00:00.000000000 Z
11
+ date: 2021-05-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: 1.1.6
20
20
  type: :runtime
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: '0'
26
+ version: 1.1.6
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: mime-types
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: 2.2.3
55
+ - !ruby/object:Gem::Dependency
56
+ name: chunky_png
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: dry-inflector
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -108,6 +122,20 @@ dependencies:
108
122
  - - "~>"
109
123
  - !ruby/object:Gem::Version
110
124
  version: 3.10.0
125
+ - !ruby/object:Gem::Dependency
126
+ name: rspec_junit_formatter
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
111
139
  - !ruby/object:Gem::Dependency
112
140
  name: rubocop
113
141
  requirement: !ruby/object:Gem::Requirement
@@ -187,26 +215,26 @@ files:
187
215
  - lib/playwright/channel_owner.rb
188
216
  - lib/playwright/channel_owners/android.rb
189
217
  - lib/playwright/channel_owners/android_device.rb
218
+ - lib/playwright/channel_owners/artifact.rb
190
219
  - lib/playwright/channel_owners/binding_call.rb
191
220
  - lib/playwright/channel_owners/browser.rb
192
221
  - lib/playwright/channel_owners/browser_context.rb
193
222
  - lib/playwright/channel_owners/browser_type.rb
194
- - lib/playwright/channel_owners/chromium_browser.rb
195
- - lib/playwright/channel_owners/chromium_browser_context.rb
196
223
  - lib/playwright/channel_owners/console_message.rb
197
- - lib/playwright/channel_owners/download.rb
224
+ - lib/playwright/channel_owners/dialog.rb
198
225
  - lib/playwright/channel_owners/electron.rb
199
226
  - lib/playwright/channel_owners/element_handle.rb
200
- - lib/playwright/channel_owners/firefox_browser.rb
201
227
  - lib/playwright/channel_owners/frame.rb
202
228
  - lib/playwright/channel_owners/js_handle.rb
203
229
  - lib/playwright/channel_owners/page.rb
204
230
  - lib/playwright/channel_owners/playwright.rb
205
231
  - lib/playwright/channel_owners/request.rb
206
232
  - lib/playwright/channel_owners/response.rb
233
+ - lib/playwright/channel_owners/route.rb
207
234
  - lib/playwright/channel_owners/selectors.rb
208
- - lib/playwright/channel_owners/webkit_browser.rb
235
+ - lib/playwright/channel_owners/stream.rb
209
236
  - lib/playwright/connection.rb
237
+ - lib/playwright/download.rb
210
238
  - lib/playwright/errors.rb
211
239
  - lib/playwright/event_emitter.rb
212
240
  - lib/playwright/event_emitter_proxy.rb
@@ -222,6 +250,7 @@ files:
222
250
  - lib/playwright/keyboard_impl.rb
223
251
  - lib/playwright/mouse_impl.rb
224
252
  - lib/playwright/playwright_api.rb
253
+ - lib/playwright/route_handler_entry.rb
225
254
  - lib/playwright/select_option_values.rb
226
255
  - lib/playwright/timeout_settings.rb
227
256
  - lib/playwright/touchscreen_impl.rb
@@ -229,20 +258,20 @@ files:
229
258
  - lib/playwright/url_matcher.rb
230
259
  - lib/playwright/utils.rb
231
260
  - lib/playwright/version.rb
261
+ - lib/playwright/video.rb
232
262
  - lib/playwright/wait_helper.rb
233
263
  - lib/playwright_api/accessibility.rb
234
264
  - lib/playwright_api/android.rb
235
265
  - lib/playwright_api/android_device.rb
236
266
  - lib/playwright_api/android_input.rb
237
- - lib/playwright_api/binding_call.rb
267
+ - lib/playwright_api/android_socket.rb
268
+ - lib/playwright_api/android_web_view.rb
238
269
  - lib/playwright_api/browser.rb
239
270
  - lib/playwright_api/browser_context.rb
240
271
  - lib/playwright_api/browser_type.rb
241
272
  - lib/playwright_api/cdp_session.rb
242
- - lib/playwright_api/chromium_browser_context.rb
243
273
  - lib/playwright_api/console_message.rb
244
274
  - lib/playwright_api/dialog.rb
245
- - lib/playwright_api/download.rb
246
275
  - lib/playwright_api/element_handle.rb
247
276
  - lib/playwright_api/file_chooser.rb
248
277
  - lib/playwright_api/frame.rb
@@ -256,7 +285,6 @@ files:
256
285
  - lib/playwright_api/route.rb
257
286
  - lib/playwright_api/selectors.rb
258
287
  - lib/playwright_api/touchscreen.rb
259
- - lib/playwright_api/video.rb
260
288
  - lib/playwright_api/web_socket.rb
261
289
  - lib/playwright_api/worker.rb
262
290
  - playwright.gemspec
@@ -279,7 +307,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
279
307
  - !ruby/object:Gem::Version
280
308
  version: '0'
281
309
  requirements: []
282
- rubygems_version: 3.2.3
310
+ rubygems_version: 3.2.15
283
311
  signing_key:
284
312
  specification_version: 4
285
313
  summary: The Ruby binding of playwright driver