playwright-ruby-client 1.18.0 → 1.19.0

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 (51) hide show
  1. checksums.yaml +4 -4
  2. data/documentation/docs/api/api_request.md +7 -0
  3. data/documentation/docs/api/api_request_context.md +167 -45
  4. data/documentation/docs/api/api_response.md +104 -0
  5. data/documentation/docs/api/browser_context.md +4 -0
  6. data/documentation/docs/api/frame.md +1 -1
  7. data/documentation/docs/api/frame_locator.md +1 -1
  8. data/documentation/docs/api/locator.md +10 -2
  9. data/documentation/docs/api/page.md +9 -1
  10. data/documentation/docs/api/route.md +1 -0
  11. data/documentation/docs/api/tracing.md +6 -1
  12. data/documentation/docs/include/api_coverage.md +32 -14
  13. data/lib/playwright/api_response_impl.rb +77 -0
  14. data/lib/playwright/channel_owner.rb +4 -0
  15. data/lib/playwright/channel_owners/api_request_context.rb +236 -0
  16. data/lib/playwright/channel_owners/browser_context.rb +13 -10
  17. data/lib/playwright/channel_owners/frame.rb +2 -2
  18. data/lib/playwright/channel_owners/page.rb +15 -5
  19. data/lib/playwright/channel_owners/route.rb +18 -4
  20. data/lib/playwright/{tracing_impl.rb → channel_owners/tracing.rb} +4 -8
  21. data/lib/playwright/frame_locator_impl.rb +2 -1
  22. data/lib/playwright/locator_impl.rb +42 -15
  23. data/lib/playwright/route_handler.rb +11 -8
  24. data/lib/playwright/transport.rb +1 -1
  25. data/lib/playwright/version.rb +2 -2
  26. data/lib/playwright_api/android.rb +6 -6
  27. data/lib/playwright_api/android_device.rb +6 -6
  28. data/lib/playwright_api/api_request.rb +20 -0
  29. data/lib/playwright_api/api_request_context.rb +16 -16
  30. data/lib/playwright_api/api_response.rb +81 -0
  31. data/lib/playwright_api/browser.rb +6 -6
  32. data/lib/playwright_api/browser_context.rb +9 -9
  33. data/lib/playwright_api/browser_type.rb +6 -6
  34. data/lib/playwright_api/cdp_session.rb +6 -6
  35. data/lib/playwright_api/console_message.rb +6 -6
  36. data/lib/playwright_api/dialog.rb +6 -6
  37. data/lib/playwright_api/element_handle.rb +6 -6
  38. data/lib/playwright_api/frame.rb +8 -8
  39. data/lib/playwright_api/frame_locator.rb +2 -2
  40. data/lib/playwright_api/js_handle.rb +6 -6
  41. data/lib/playwright_api/locator.rb +8 -3
  42. data/lib/playwright_api/page.rb +18 -18
  43. data/lib/playwright_api/playwright.rb +8 -8
  44. data/lib/playwright_api/request.rb +6 -6
  45. data/lib/playwright_api/response.rb +6 -6
  46. data/lib/playwright_api/route.rb +8 -7
  47. data/lib/playwright_api/selectors.rb +6 -6
  48. data/lib/playwright_api/tracing.rb +29 -2
  49. data/lib/playwright_api/web_socket.rb +6 -6
  50. data/lib/playwright_api/worker.rb +6 -6
  51. metadata +10 -5
@@ -16,13 +16,13 @@ module Playwright
16
16
  # # This will launch a new browser, create a context and page. When making HTTP
17
17
  # # requests with the internal APIRequestContext (e.g. `context.request` or `page.request`)
18
18
  # # it will automatically set the cookies to the browser page and vise versa.
19
- # browser = playwright.chromium.launch()
19
+ # browser = p.chromium.launch()
20
20
  # context = browser.new_context(base_url="https://api.github.com")
21
21
  # api_request_context = context.request
22
22
  # page = context.new_page()
23
23
  #
24
24
  # # Alternatively you can create a APIRequestContext manually without having a browser context attached:
25
- # # api_request_context = playwright.request.new_context(base_url="https://api.github.com")
25
+ # # api_request_context = p.request.new_context(base_url="https://api.github.com")
26
26
  #
27
27
  #
28
28
  # # Create a repository.
@@ -65,14 +65,14 @@ module Playwright
65
65
  multipart: nil,
66
66
  params: nil,
67
67
  timeout: nil)
68
- raise NotImplementedError.new('delete is not implemented yet.')
68
+ wrap_impl(@impl.delete(unwrap_impl(url), data: unwrap_impl(data), failOnStatusCode: unwrap_impl(failOnStatusCode), form: unwrap_impl(form), headers: unwrap_impl(headers), ignoreHTTPSErrors: unwrap_impl(ignoreHTTPSErrors), multipart: unwrap_impl(multipart), params: unwrap_impl(params), timeout: unwrap_impl(timeout)))
69
69
  end
70
70
 
71
71
  # All responses returned by [`method: APIRequestContext.get`] and similar methods are stored in the memory, so that you
72
72
  # can later call [`method: APIResponse.body`]. This method discards all stored responses, and makes
73
73
  # [`method: APIResponse.body`] throw "Response disposed" error.
74
74
  def dispose
75
- raise NotImplementedError.new('dispose is not implemented yet.')
75
+ wrap_impl(@impl.dispose)
76
76
  end
77
77
 
78
78
  # Sends HTTP(S) request and returns its response. The method will populate request cookies from the context and update
@@ -88,7 +88,7 @@ module Playwright
88
88
  multipart: nil,
89
89
  params: nil,
90
90
  timeout: nil)
91
- raise NotImplementedError.new('fetch is not implemented yet.')
91
+ wrap_impl(@impl.fetch(unwrap_impl(urlOrRequest), data: unwrap_impl(data), failOnStatusCode: unwrap_impl(failOnStatusCode), form: unwrap_impl(form), headers: unwrap_impl(headers), ignoreHTTPSErrors: unwrap_impl(ignoreHTTPSErrors), method: unwrap_impl(method), multipart: unwrap_impl(multipart), params: unwrap_impl(params), timeout: unwrap_impl(timeout)))
92
92
  end
93
93
 
94
94
  # Sends HTTP(S) [GET](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/GET) request and returns its response. The
@@ -101,7 +101,7 @@ module Playwright
101
101
  ignoreHTTPSErrors: nil,
102
102
  params: nil,
103
103
  timeout: nil)
104
- raise NotImplementedError.new('get is not implemented yet.')
104
+ wrap_impl(@impl.get(unwrap_impl(url), failOnStatusCode: unwrap_impl(failOnStatusCode), headers: unwrap_impl(headers), ignoreHTTPSErrors: unwrap_impl(ignoreHTTPSErrors), params: unwrap_impl(params), timeout: unwrap_impl(timeout)))
105
105
  end
106
106
 
107
107
  # Sends HTTP(S) [HEAD](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/HEAD) request and returns its response.
@@ -114,7 +114,7 @@ module Playwright
114
114
  ignoreHTTPSErrors: nil,
115
115
  params: nil,
116
116
  timeout: nil)
117
- raise NotImplementedError.new('head is not implemented yet.')
117
+ wrap_impl(@impl.head(unwrap_impl(url), failOnStatusCode: unwrap_impl(failOnStatusCode), headers: unwrap_impl(headers), ignoreHTTPSErrors: unwrap_impl(ignoreHTTPSErrors), params: unwrap_impl(params), timeout: unwrap_impl(timeout)))
118
118
  end
119
119
 
120
120
  # Sends HTTP(S) [PATCH](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/PATCH) request and returns its response.
@@ -130,7 +130,7 @@ module Playwright
130
130
  multipart: nil,
131
131
  params: nil,
132
132
  timeout: nil)
133
- raise NotImplementedError.new('patch is not implemented yet.')
133
+ wrap_impl(@impl.patch(unwrap_impl(url), data: unwrap_impl(data), failOnStatusCode: unwrap_impl(failOnStatusCode), form: unwrap_impl(form), headers: unwrap_impl(headers), ignoreHTTPSErrors: unwrap_impl(ignoreHTTPSErrors), multipart: unwrap_impl(multipart), params: unwrap_impl(params), timeout: unwrap_impl(timeout)))
134
134
  end
135
135
 
136
136
  # Sends HTTP(S) [POST](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST) request and returns its response.
@@ -146,7 +146,7 @@ module Playwright
146
146
  multipart: nil,
147
147
  params: nil,
148
148
  timeout: nil)
149
- raise NotImplementedError.new('post is not implemented yet.')
149
+ wrap_impl(@impl.post(unwrap_impl(url), data: unwrap_impl(data), failOnStatusCode: unwrap_impl(failOnStatusCode), form: unwrap_impl(form), headers: unwrap_impl(headers), ignoreHTTPSErrors: unwrap_impl(ignoreHTTPSErrors), multipart: unwrap_impl(multipart), params: unwrap_impl(params), timeout: unwrap_impl(timeout)))
150
150
  end
151
151
 
152
152
  # Sends HTTP(S) [PUT](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/PUT) request and returns its response. The
@@ -162,7 +162,7 @@ module Playwright
162
162
  multipart: nil,
163
163
  params: nil,
164
164
  timeout: nil)
165
- raise NotImplementedError.new('put is not implemented yet.')
165
+ wrap_impl(@impl.put(unwrap_impl(url), data: unwrap_impl(data), failOnStatusCode: unwrap_impl(failOnStatusCode), form: unwrap_impl(form), headers: unwrap_impl(headers), ignoreHTTPSErrors: unwrap_impl(ignoreHTTPSErrors), multipart: unwrap_impl(multipart), params: unwrap_impl(params), timeout: unwrap_impl(timeout)))
166
166
  end
167
167
 
168
168
  # Returns storage state for this request context, contains current cookies and local storage snapshot if it was passed to
@@ -173,20 +173,20 @@ module Playwright
173
173
 
174
174
  # -- inherited from EventEmitter --
175
175
  # @nodoc
176
- def once(event, callback)
177
- event_emitter_proxy.once(event, callback)
176
+ def off(event, callback)
177
+ event_emitter_proxy.off(event, callback)
178
178
  end
179
179
 
180
180
  # -- inherited from EventEmitter --
181
181
  # @nodoc
182
- def on(event, callback)
183
- event_emitter_proxy.on(event, callback)
182
+ def once(event, callback)
183
+ event_emitter_proxy.once(event, callback)
184
184
  end
185
185
 
186
186
  # -- inherited from EventEmitter --
187
187
  # @nodoc
188
- def off(event, callback)
189
- event_emitter_proxy.off(event, callback)
188
+ def on(event, callback)
189
+ event_emitter_proxy.on(event, callback)
190
190
  end
191
191
 
192
192
  private def event_emitter_proxy
@@ -0,0 +1,81 @@
1
+ module Playwright
2
+ # `APIResponse` class represents responses returned by [`method: APIRequestContext.get`] and similar methods.
3
+ #
4
+ # ```python sync
5
+ # from playwright.sync_api import sync_playwright
6
+ #
7
+ # with sync_playwright() as p:
8
+ # context = playwright.request.new_context()
9
+ # response = context.get("https://example.com/user/repos")
10
+ # assert response.ok
11
+ # assert response.status == 200
12
+ # assert response.headers["content-type"] == "application/json; charset=utf-8"
13
+ # assert response.json()["name"] == "foobar"
14
+ # assert response.body() == '{"status": "ok"}'
15
+ # ```
16
+ class APIResponse < PlaywrightApi
17
+
18
+ # Returns the buffer with response body.
19
+ def body
20
+ wrap_impl(@impl.body)
21
+ end
22
+
23
+ # Disposes the body of this response. If not called then the body will stay in memory until the context closes.
24
+ def dispose
25
+ wrap_impl(@impl.dispose)
26
+ end
27
+
28
+ # An object with all the response HTTP headers associated with this response.
29
+ def headers
30
+ wrap_impl(@impl.headers)
31
+ end
32
+
33
+ # An array with all the request HTTP headers associated with this response. Header names are not lower-cased. Headers with
34
+ # multiple entries, such as `Set-Cookie`, appear in the array multiple times.
35
+ def headers_array
36
+ wrap_impl(@impl.headers_array)
37
+ end
38
+
39
+ # Returns the JSON representation of response body.
40
+ #
41
+ # This method will throw if the response body is not parsable via `JSON.parse`.
42
+ def json
43
+ wrap_impl(@impl.json)
44
+ end
45
+
46
+ # Contains a boolean stating whether the response was successful (status in the range 200-299) or not.
47
+ def ok
48
+ wrap_impl(@impl.ok)
49
+ end
50
+
51
+ # Contains the status code of the response (e.g., 200 for a success).
52
+ def status
53
+ wrap_impl(@impl.status)
54
+ end
55
+
56
+ # Contains the status text of the response (e.g. usually an "OK" for a success).
57
+ def status_text
58
+ wrap_impl(@impl.status_text)
59
+ end
60
+
61
+ # Returns the text representation of response body.
62
+ def text
63
+ wrap_impl(@impl.text)
64
+ end
65
+
66
+ # Contains the URL of the response.
67
+ def url
68
+ wrap_impl(@impl.url)
69
+ end
70
+
71
+ # @nodoc
72
+ def ok?
73
+ wrap_impl(@impl.ok?)
74
+ end
75
+
76
+ # @nodoc
77
+ def to_s
78
+ wrap_impl(@impl.to_s)
79
+ end
80
+ end
81
+ end
@@ -168,20 +168,20 @@ module Playwright
168
168
 
169
169
  # -- inherited from EventEmitter --
170
170
  # @nodoc
171
- def once(event, callback)
172
- event_emitter_proxy.once(event, callback)
171
+ def off(event, callback)
172
+ event_emitter_proxy.off(event, callback)
173
173
  end
174
174
 
175
175
  # -- inherited from EventEmitter --
176
176
  # @nodoc
177
- def on(event, callback)
178
- event_emitter_proxy.on(event, callback)
177
+ def once(event, callback)
178
+ event_emitter_proxy.once(event, callback)
179
179
  end
180
180
 
181
181
  # -- inherited from EventEmitter --
182
182
  # @nodoc
183
- def off(event, callback)
184
- event_emitter_proxy.off(event, callback)
183
+ def on(event, callback)
184
+ event_emitter_proxy.on(event, callback)
185
185
  end
186
186
 
187
187
  private def event_emitter_proxy
@@ -22,7 +22,7 @@ module Playwright
22
22
 
23
23
  # API testing helper associated with this context. Requests made with this API will use context cookies.
24
24
  def request # property
25
- raise NotImplementedError.new('request is not implemented yet.')
25
+ wrap_impl(@impl.request)
26
26
  end
27
27
 
28
28
  def tracing # property
@@ -376,6 +376,11 @@ module Playwright
376
376
  wrap_impl(@impl.pause)
377
377
  end
378
378
 
379
+ # @nodoc
380
+ def enable_debug_console!
381
+ wrap_impl(@impl.enable_debug_console!)
382
+ end
383
+
379
384
  # @nodoc
380
385
  def browser=(req)
381
386
  wrap_impl(@impl.browser=(unwrap_impl(req)))
@@ -391,9 +396,10 @@ module Playwright
391
396
  wrap_impl(@impl.options=(unwrap_impl(req)))
392
397
  end
393
398
 
399
+ # -- inherited from EventEmitter --
394
400
  # @nodoc
395
- def enable_debug_console!
396
- wrap_impl(@impl.enable_debug_console!)
401
+ def off(event, callback)
402
+ event_emitter_proxy.off(event, callback)
397
403
  end
398
404
 
399
405
  # -- inherited from EventEmitter --
@@ -408,12 +414,6 @@ module Playwright
408
414
  event_emitter_proxy.on(event, callback)
409
415
  end
410
416
 
411
- # -- inherited from EventEmitter --
412
- # @nodoc
413
- def off(event, callback)
414
- event_emitter_proxy.off(event, callback)
415
- end
416
-
417
417
  private def event_emitter_proxy
418
418
  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
419
419
  end
@@ -148,20 +148,20 @@ module Playwright
148
148
 
149
149
  # -- inherited from EventEmitter --
150
150
  # @nodoc
151
- def once(event, callback)
152
- event_emitter_proxy.once(event, callback)
151
+ def off(event, callback)
152
+ event_emitter_proxy.off(event, callback)
153
153
  end
154
154
 
155
155
  # -- inherited from EventEmitter --
156
156
  # @nodoc
157
- def on(event, callback)
158
- event_emitter_proxy.on(event, callback)
157
+ def once(event, callback)
158
+ event_emitter_proxy.once(event, callback)
159
159
  end
160
160
 
161
161
  # -- inherited from EventEmitter --
162
162
  # @nodoc
163
- def off(event, callback)
164
- event_emitter_proxy.off(event, callback)
163
+ def on(event, callback)
164
+ event_emitter_proxy.on(event, callback)
165
165
  end
166
166
 
167
167
  private def event_emitter_proxy
@@ -35,20 +35,20 @@ module Playwright
35
35
 
36
36
  # -- inherited from EventEmitter --
37
37
  # @nodoc
38
- def once(event, callback)
39
- event_emitter_proxy.once(event, callback)
38
+ def off(event, callback)
39
+ event_emitter_proxy.off(event, callback)
40
40
  end
41
41
 
42
42
  # -- inherited from EventEmitter --
43
43
  # @nodoc
44
- def on(event, callback)
45
- event_emitter_proxy.on(event, callback)
44
+ def once(event, callback)
45
+ event_emitter_proxy.once(event, callback)
46
46
  end
47
47
 
48
48
  # -- inherited from EventEmitter --
49
49
  # @nodoc
50
- def off(event, callback)
51
- event_emitter_proxy.off(event, callback)
50
+ def on(event, callback)
51
+ event_emitter_proxy.on(event, callback)
52
52
  end
53
53
 
54
54
  private def event_emitter_proxy
@@ -25,20 +25,20 @@ module Playwright
25
25
 
26
26
  # -- inherited from EventEmitter --
27
27
  # @nodoc
28
- def once(event, callback)
29
- event_emitter_proxy.once(event, callback)
28
+ def off(event, callback)
29
+ event_emitter_proxy.off(event, callback)
30
30
  end
31
31
 
32
32
  # -- inherited from EventEmitter --
33
33
  # @nodoc
34
- def on(event, callback)
35
- event_emitter_proxy.on(event, callback)
34
+ def once(event, callback)
35
+ event_emitter_proxy.once(event, callback)
36
36
  end
37
37
 
38
38
  # -- inherited from EventEmitter --
39
39
  # @nodoc
40
- def off(event, callback)
41
- event_emitter_proxy.off(event, callback)
40
+ def on(event, callback)
41
+ event_emitter_proxy.on(event, callback)
42
42
  end
43
43
 
44
44
  private def event_emitter_proxy
@@ -60,20 +60,20 @@ module Playwright
60
60
 
61
61
  # -- inherited from EventEmitter --
62
62
  # @nodoc
63
- def once(event, callback)
64
- event_emitter_proxy.once(event, callback)
63
+ def off(event, callback)
64
+ event_emitter_proxy.off(event, callback)
65
65
  end
66
66
 
67
67
  # -- inherited from EventEmitter --
68
68
  # @nodoc
69
- def on(event, callback)
70
- event_emitter_proxy.on(event, callback)
69
+ def once(event, callback)
70
+ event_emitter_proxy.once(event, callback)
71
71
  end
72
72
 
73
73
  # -- inherited from EventEmitter --
74
74
  # @nodoc
75
- def off(event, callback)
76
- event_emitter_proxy.off(event, callback)
75
+ def on(event, callback)
76
+ event_emitter_proxy.on(event, callback)
77
77
  end
78
78
 
79
79
  private def event_emitter_proxy
@@ -553,20 +553,20 @@ module Playwright
553
553
 
554
554
  # -- inherited from EventEmitter --
555
555
  # @nodoc
556
- def once(event, callback)
557
- event_emitter_proxy.once(event, callback)
556
+ def off(event, callback)
557
+ event_emitter_proxy.off(event, callback)
558
558
  end
559
559
 
560
560
  # -- inherited from EventEmitter --
561
561
  # @nodoc
562
- def on(event, callback)
563
- event_emitter_proxy.on(event, callback)
562
+ def once(event, callback)
563
+ event_emitter_proxy.once(event, callback)
564
564
  end
565
565
 
566
566
  # -- inherited from EventEmitter --
567
567
  # @nodoc
568
- def off(event, callback)
569
- event_emitter_proxy.off(event, callback)
568
+ def on(event, callback)
569
+ event_emitter_proxy.on(event, callback)
570
570
  end
571
571
 
572
572
  private def event_emitter_proxy
@@ -445,8 +445,8 @@ module Playwright
445
445
  # The method returns an element locator that can be used to perform actions in the frame. Locator is resolved to the
446
446
  # element immediately before performing an action, so a series of actions on the same locator can in fact be performed on
447
447
  # different DOM elements. That would happen if the DOM structure between those actions has changed.
448
- def locator(selector, hasText: nil)
449
- wrap_impl(@impl.locator(unwrap_impl(selector), hasText: unwrap_impl(hasText)))
448
+ def locator(selector, has: nil, hasText: nil)
449
+ wrap_impl(@impl.locator(unwrap_impl(selector), has: unwrap_impl(has), hasText: unwrap_impl(hasText)))
450
450
  end
451
451
 
452
452
  # Returns frame's name attribute as specified in the tag.
@@ -790,20 +790,20 @@ module Playwright
790
790
 
791
791
  # -- inherited from EventEmitter --
792
792
  # @nodoc
793
- def once(event, callback)
794
- event_emitter_proxy.once(event, callback)
793
+ def off(event, callback)
794
+ event_emitter_proxy.off(event, callback)
795
795
  end
796
796
 
797
797
  # -- inherited from EventEmitter --
798
798
  # @nodoc
799
- def on(event, callback)
800
- event_emitter_proxy.on(event, callback)
799
+ def once(event, callback)
800
+ event_emitter_proxy.once(event, callback)
801
801
  end
802
802
 
803
803
  # -- inherited from EventEmitter --
804
804
  # @nodoc
805
- def off(event, callback)
806
- event_emitter_proxy.off(event, callback)
805
+ def on(event, callback)
806
+ event_emitter_proxy.on(event, callback)
807
807
  end
808
808
 
809
809
  private def event_emitter_proxy
@@ -48,8 +48,8 @@ module Playwright
48
48
  end
49
49
 
50
50
  # The method finds an element matching the specified selector in the FrameLocator's subtree.
51
- def locator(selector, hasText: nil)
52
- wrap_impl(@impl.locator(unwrap_impl(selector), hasText: unwrap_impl(hasText)))
51
+ def locator(selector, has: nil, hasText: nil)
52
+ wrap_impl(@impl.locator(unwrap_impl(selector), has: unwrap_impl(has), hasText: unwrap_impl(hasText)))
53
53
  end
54
54
 
55
55
  # Returns locator to the n-th matching frame.
@@ -90,20 +90,20 @@ module Playwright
90
90
 
91
91
  # -- inherited from EventEmitter --
92
92
  # @nodoc
93
- def once(event, callback)
94
- event_emitter_proxy.once(event, callback)
93
+ def off(event, callback)
94
+ event_emitter_proxy.off(event, callback)
95
95
  end
96
96
 
97
97
  # -- inherited from EventEmitter --
98
98
  # @nodoc
99
- def on(event, callback)
100
- event_emitter_proxy.on(event, callback)
99
+ def once(event, callback)
100
+ event_emitter_proxy.once(event, callback)
101
101
  end
102
102
 
103
103
  # -- inherited from EventEmitter --
104
104
  # @nodoc
105
- def off(event, callback)
106
- event_emitter_proxy.off(event, callback)
105
+ def on(event, callback)
106
+ event_emitter_proxy.on(event, callback)
107
107
  end
108
108
 
109
109
  private def event_emitter_proxy
@@ -238,7 +238,7 @@ module Playwright
238
238
  # that iframe:
239
239
  #
240
240
  # ```python sync
241
- # locator = page.frame_locator("text=Submit").locator("text=Submit")
241
+ # locator = page.frame_locator("iframe").locator("text=Submit")
242
242
  # locator.click()
243
243
  # ```
244
244
  def frame_locator(selector)
@@ -320,8 +320,8 @@ module Playwright
320
320
  end
321
321
 
322
322
  # The method finds an element matching the specified selector in the `Locator`'s subtree.
323
- def locator(selector, hasText: nil)
324
- wrap_impl(@impl.locator(unwrap_impl(selector), hasText: unwrap_impl(hasText)))
323
+ def locator(selector, has: nil, hasText: nil)
324
+ wrap_impl(@impl.locator(unwrap_impl(selector), has: unwrap_impl(has), hasText: unwrap_impl(hasText)))
325
325
  end
326
326
 
327
327
  # Returns locator to the n-th matching element.
@@ -329,6 +329,11 @@ module Playwright
329
329
  wrap_impl(@impl.nth(unwrap_impl(index)))
330
330
  end
331
331
 
332
+ # A page this locator belongs to.
333
+ def page
334
+ wrap_impl(@impl.page)
335
+ end
336
+
332
337
  # Focuses the element, and then uses [`method: Keyboard.down`] and [`method: Keyboard.up`].
333
338
  #
334
339
  # `key` can specify the intended [keyboardEvent.key](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key)
@@ -58,7 +58,7 @@ module Playwright
58
58
 
59
59
  # API testing helper associated with this page. Requests made with this API will use page cookies.
60
60
  def request # property
61
- raise NotImplementedError.new('request is not implemented yet.')
61
+ wrap_impl(@impl.request)
62
62
  end
63
63
 
64
64
  def touchscreen # property
@@ -686,8 +686,8 @@ module Playwright
686
686
  # different DOM elements. That would happen if the DOM structure between those actions has changed.
687
687
  #
688
688
  # Shortcut for main frame's [`method: Frame.locator`].
689
- def locator(selector, hasText: nil)
690
- wrap_impl(@impl.locator(unwrap_impl(selector), hasText: unwrap_impl(hasText)))
689
+ def locator(selector, has: nil, hasText: nil)
690
+ wrap_impl(@impl.locator(unwrap_impl(selector), has: unwrap_impl(has), hasText: unwrap_impl(hasText)))
691
691
  end
692
692
 
693
693
  # The page's main frame. Page is guaranteed to have a main frame which persists during navigations.
@@ -1282,7 +1282,7 @@ module Playwright
1282
1282
  # return response.ok
1283
1283
  #
1284
1284
  # # or with a lambda
1285
- # with page.expect_response(lambda response: response.url == "https://example.com" and response.status === 200) as response_info:
1285
+ # with page.expect_response(lambda response: response.url == "https://example.com" and response.status == 200) as response_info:
1286
1286
  # page.click("input")
1287
1287
  # response = response_info.value
1288
1288
  # return response.ok
@@ -1387,23 +1387,23 @@ module Playwright
1387
1387
  end
1388
1388
 
1389
1389
  # @nodoc
1390
- def start_js_coverage(resetOnNavigation: nil, reportAnonymousScripts: nil)
1391
- wrap_impl(@impl.start_js_coverage(resetOnNavigation: unwrap_impl(resetOnNavigation), reportAnonymousScripts: unwrap_impl(reportAnonymousScripts)))
1390
+ def start_css_coverage(resetOnNavigation: nil, reportAnonymousScripts: nil)
1391
+ wrap_impl(@impl.start_css_coverage(resetOnNavigation: unwrap_impl(resetOnNavigation), reportAnonymousScripts: unwrap_impl(reportAnonymousScripts)))
1392
1392
  end
1393
1393
 
1394
1394
  # @nodoc
1395
- def stop_js_coverage
1396
- wrap_impl(@impl.stop_js_coverage)
1395
+ def stop_css_coverage
1396
+ wrap_impl(@impl.stop_css_coverage)
1397
1397
  end
1398
1398
 
1399
1399
  # @nodoc
1400
- def start_css_coverage(resetOnNavigation: nil, reportAnonymousScripts: nil)
1401
- wrap_impl(@impl.start_css_coverage(resetOnNavigation: unwrap_impl(resetOnNavigation), reportAnonymousScripts: unwrap_impl(reportAnonymousScripts)))
1400
+ def stop_js_coverage
1401
+ wrap_impl(@impl.stop_js_coverage)
1402
1402
  end
1403
1403
 
1404
1404
  # @nodoc
1405
- def stop_css_coverage
1406
- wrap_impl(@impl.stop_css_coverage)
1405
+ def start_js_coverage(resetOnNavigation: nil, reportAnonymousScripts: nil)
1406
+ wrap_impl(@impl.start_js_coverage(resetOnNavigation: unwrap_impl(resetOnNavigation), reportAnonymousScripts: unwrap_impl(reportAnonymousScripts)))
1407
1407
  end
1408
1408
 
1409
1409
  # @nodoc
@@ -1413,20 +1413,20 @@ module Playwright
1413
1413
 
1414
1414
  # -- inherited from EventEmitter --
1415
1415
  # @nodoc
1416
- def once(event, callback)
1417
- event_emitter_proxy.once(event, callback)
1416
+ def off(event, callback)
1417
+ event_emitter_proxy.off(event, callback)
1418
1418
  end
1419
1419
 
1420
1420
  # -- inherited from EventEmitter --
1421
1421
  # @nodoc
1422
- def on(event, callback)
1423
- event_emitter_proxy.on(event, callback)
1422
+ def once(event, callback)
1423
+ event_emitter_proxy.once(event, callback)
1424
1424
  end
1425
1425
 
1426
1426
  # -- inherited from EventEmitter --
1427
1427
  # @nodoc
1428
- def off(event, callback)
1429
- event_emitter_proxy.off(event, callback)
1428
+ def on(event, callback)
1429
+ event_emitter_proxy.on(event, callback)
1430
1430
  end
1431
1431
 
1432
1432
  private def event_emitter_proxy
@@ -86,14 +86,20 @@ module Playwright
86
86
  raise NotImplementedError.new('stop is not implemented yet.')
87
87
  end
88
88
 
89
+ # @nodoc
90
+ def electron
91
+ wrap_impl(@impl.electron)
92
+ end
93
+
89
94
  # @nodoc
90
95
  def android
91
96
  wrap_impl(@impl.android)
92
97
  end
93
98
 
99
+ # -- inherited from EventEmitter --
94
100
  # @nodoc
95
- def electron
96
- wrap_impl(@impl.electron)
101
+ def off(event, callback)
102
+ event_emitter_proxy.off(event, callback)
97
103
  end
98
104
 
99
105
  # -- inherited from EventEmitter --
@@ -108,12 +114,6 @@ module Playwright
108
114
  event_emitter_proxy.on(event, callback)
109
115
  end
110
116
 
111
- # -- inherited from EventEmitter --
112
- # @nodoc
113
- def off(event, callback)
114
- event_emitter_proxy.off(event, callback)
115
- end
116
-
117
117
  private def event_emitter_proxy
118
118
  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
119
119
  end
@@ -156,20 +156,20 @@ module Playwright
156
156
 
157
157
  # -- inherited from EventEmitter --
158
158
  # @nodoc
159
- def once(event, callback)
160
- event_emitter_proxy.once(event, callback)
159
+ def off(event, callback)
160
+ event_emitter_proxy.off(event, callback)
161
161
  end
162
162
 
163
163
  # -- inherited from EventEmitter --
164
164
  # @nodoc
165
- def on(event, callback)
166
- event_emitter_proxy.on(event, callback)
165
+ def once(event, callback)
166
+ event_emitter_proxy.once(event, callback)
167
167
  end
168
168
 
169
169
  # -- inherited from EventEmitter --
170
170
  # @nodoc
171
- def off(event, callback)
172
- event_emitter_proxy.off(event, callback)
171
+ def on(event, callback)
172
+ event_emitter_proxy.on(event, callback)
173
173
  end
174
174
 
175
175
  private def event_emitter_proxy