playwright-ruby-client 0.0.8 → 1.58.1.alpha1

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 (209) hide show
  1. checksums.yaml +4 -4
  2. data/AGENTS.md +4 -0
  3. data/CLAUDE/api_generation.md +28 -0
  4. data/CLAUDE/ci_expectations.md +23 -0
  5. data/CLAUDE/gem_release_flow.md +39 -0
  6. data/CLAUDE/past_upgrade_pr_patterns.md +42 -0
  7. data/CLAUDE/playwright_upgrade_workflow.md +35 -0
  8. data/CLAUDE/rspec_debugging.md +30 -0
  9. data/CLAUDE/unimplemented_examples.md +18 -0
  10. data/CLAUDE.md +32 -0
  11. data/CONTRIBUTING.md +5 -0
  12. data/README.md +60 -16
  13. data/documentation/README.md +33 -0
  14. data/documentation/babel.config.js +3 -0
  15. data/documentation/docs/api/api_request.md +7 -0
  16. data/documentation/docs/api/api_request_context.md +298 -0
  17. data/documentation/docs/api/api_response.md +114 -0
  18. data/documentation/docs/api/browser.md +237 -0
  19. data/documentation/docs/api/browser_context.md +503 -0
  20. data/documentation/docs/api/browser_type.md +184 -0
  21. data/documentation/docs/api/cdp_session.md +44 -0
  22. data/documentation/docs/api/clock.md +154 -0
  23. data/documentation/docs/api/console_message.md +85 -0
  24. data/documentation/docs/api/dialog.md +84 -0
  25. data/documentation/docs/api/download.md +111 -0
  26. data/documentation/docs/api/element_handle.md +694 -0
  27. data/documentation/docs/api/experimental/_category_.yml +3 -0
  28. data/documentation/docs/api/experimental/android.md +42 -0
  29. data/documentation/docs/api/experimental/android_device.md +109 -0
  30. data/documentation/docs/api/experimental/android_input.md +43 -0
  31. data/documentation/docs/api/experimental/android_socket.md +7 -0
  32. data/documentation/docs/api/experimental/android_web_view.md +7 -0
  33. data/documentation/docs/api/file_chooser.md +53 -0
  34. data/documentation/docs/api/frame.md +1218 -0
  35. data/documentation/docs/api/frame_locator.md +348 -0
  36. data/documentation/docs/api/js_handle.md +121 -0
  37. data/documentation/docs/api/keyboard.md +170 -0
  38. data/documentation/docs/api/locator.md +1495 -0
  39. data/documentation/docs/api/locator_assertions.md +827 -0
  40. data/documentation/docs/api/mouse.md +86 -0
  41. data/documentation/docs/api/page.md +1946 -0
  42. data/documentation/docs/api/page_assertions.md +65 -0
  43. data/documentation/docs/api/playwright.md +66 -0
  44. data/documentation/docs/api/request.md +255 -0
  45. data/documentation/docs/api/response.md +176 -0
  46. data/documentation/docs/api/route.md +205 -0
  47. data/documentation/docs/api/selectors.md +63 -0
  48. data/documentation/docs/api/touchscreen.md +22 -0
  49. data/documentation/docs/api/tracing.md +129 -0
  50. data/documentation/docs/api/web_socket.md +51 -0
  51. data/documentation/docs/api/worker.md +83 -0
  52. data/documentation/docs/article/api_coverage.mdx +11 -0
  53. data/documentation/docs/article/getting_started.md +161 -0
  54. data/documentation/docs/article/guides/_category_.yml +3 -0
  55. data/documentation/docs/article/guides/download_playwright_driver.md +55 -0
  56. data/documentation/docs/article/guides/inspector.md +31 -0
  57. data/documentation/docs/article/guides/launch_browser.md +121 -0
  58. data/documentation/docs/article/guides/playwright_on_alpine_linux.md +112 -0
  59. data/documentation/docs/article/guides/rails_integration.md +278 -0
  60. data/documentation/docs/article/guides/rails_integration_with_null_driver.md +145 -0
  61. data/documentation/docs/article/guides/recording_video.md +79 -0
  62. data/documentation/docs/article/guides/rspec_integration.md +59 -0
  63. data/documentation/docs/article/guides/semi_automation.md +71 -0
  64. data/documentation/docs/article/guides/use_storage_state.md +78 -0
  65. data/documentation/docs/include/api_coverage.md +671 -0
  66. data/documentation/docusaurus.config.js +114 -0
  67. data/documentation/package.json +39 -0
  68. data/documentation/sidebars.js +15 -0
  69. data/documentation/src/components/HomepageFeatures.js +61 -0
  70. data/documentation/src/components/HomepageFeatures.module.css +13 -0
  71. data/documentation/src/css/custom.css +44 -0
  72. data/documentation/src/pages/index.js +49 -0
  73. data/documentation/src/pages/index.module.css +41 -0
  74. data/documentation/src/pages/markdown-page.md +7 -0
  75. data/documentation/static/.nojekyll +0 -0
  76. data/documentation/static/img/playwright-logo.svg +9 -0
  77. data/documentation/static/img/playwright-ruby-client.png +0 -0
  78. data/documentation/static/img/undraw_dropdown_menu.svg +1 -0
  79. data/documentation/static/img/undraw_web_development.svg +1 -0
  80. data/documentation/static/img/undraw_windows.svg +1 -0
  81. data/documentation/yarn.lock +9005 -0
  82. data/lib/playwright/{input_types/android_input.rb → android_input_impl.rb} +5 -1
  83. data/lib/playwright/api_implementation.rb +18 -0
  84. data/lib/playwright/api_response_impl.rb +77 -0
  85. data/lib/playwright/channel.rb +62 -1
  86. data/lib/playwright/channel_owner.rb +70 -7
  87. data/lib/playwright/channel_owners/android.rb +16 -3
  88. data/lib/playwright/channel_owners/android_device.rb +22 -66
  89. data/lib/playwright/channel_owners/api_request_context.rb +247 -0
  90. data/lib/playwright/channel_owners/artifact.rb +40 -0
  91. data/lib/playwright/channel_owners/binding_call.rb +70 -0
  92. data/lib/playwright/channel_owners/browser.rb +114 -22
  93. data/lib/playwright/channel_owners/browser_context.rb +589 -15
  94. data/lib/playwright/channel_owners/browser_type.rb +90 -1
  95. data/lib/playwright/channel_owners/cdp_session.rb +19 -0
  96. data/lib/playwright/channel_owners/dialog.rb +32 -0
  97. data/lib/playwright/channel_owners/element_handle.rb +107 -43
  98. data/lib/playwright/channel_owners/fetch_request.rb +8 -0
  99. data/lib/playwright/channel_owners/frame.rb +334 -104
  100. data/lib/playwright/channel_owners/js_handle.rb +9 -13
  101. data/lib/playwright/channel_owners/local_utils.rb +82 -0
  102. data/lib/playwright/channel_owners/page.rb +778 -95
  103. data/lib/playwright/channel_owners/playwright.rb +25 -30
  104. data/lib/playwright/channel_owners/request.rb +120 -18
  105. data/lib/playwright/channel_owners/response.rb +113 -0
  106. data/lib/playwright/channel_owners/route.rb +181 -0
  107. data/lib/playwright/channel_owners/stream.rb +30 -0
  108. data/lib/playwright/channel_owners/tracing.rb +117 -0
  109. data/lib/playwright/channel_owners/web_socket.rb +96 -0
  110. data/lib/playwright/channel_owners/worker.rb +46 -0
  111. data/lib/playwright/channel_owners/writable_stream.rb +14 -0
  112. data/lib/playwright/clock_impl.rb +67 -0
  113. data/lib/playwright/connection.rb +111 -63
  114. data/lib/playwright/console_message_impl.rb +29 -0
  115. data/lib/playwright/download_impl.rb +32 -0
  116. data/lib/playwright/errors.rb +42 -5
  117. data/lib/playwright/event_emitter.rb +17 -3
  118. data/lib/playwright/event_emitter_proxy.rb +49 -0
  119. data/lib/playwright/events.rb +10 -5
  120. data/lib/playwright/file_chooser_impl.rb +24 -0
  121. data/lib/playwright/frame_locator_impl.rb +66 -0
  122. data/lib/playwright/har_router.rb +89 -0
  123. data/lib/playwright/http_headers.rb +14 -0
  124. data/lib/playwright/input_files.rb +102 -15
  125. data/lib/playwright/javascript/expression.rb +7 -11
  126. data/lib/playwright/javascript/regex.rb +23 -0
  127. data/lib/playwright/javascript/source_url.rb +16 -0
  128. data/lib/playwright/javascript/value_parser.rb +108 -19
  129. data/lib/playwright/javascript/value_serializer.rb +47 -8
  130. data/lib/playwright/javascript/visitor_info.rb +26 -0
  131. data/lib/playwright/javascript.rb +2 -10
  132. data/lib/playwright/{input_types/keyboard.rb → keyboard_impl.rb} +6 -2
  133. data/lib/playwright/locator_assertions_impl.rb +571 -0
  134. data/lib/playwright/locator_impl.rb +544 -0
  135. data/lib/playwright/locator_utils.rb +136 -0
  136. data/lib/playwright/mouse_impl.rb +57 -0
  137. data/lib/playwright/page_assertions_impl.rb +154 -0
  138. data/lib/playwright/playwright_api.rb +102 -30
  139. data/lib/playwright/raw_headers.rb +61 -0
  140. data/lib/playwright/route_handler.rb +78 -0
  141. data/lib/playwright/select_option_values.rb +34 -13
  142. data/lib/playwright/selectors_impl.rb +45 -0
  143. data/lib/playwright/test.rb +102 -0
  144. data/lib/playwright/timeout_settings.rb +9 -4
  145. data/lib/playwright/touchscreen_impl.rb +14 -0
  146. data/lib/playwright/transport.rb +61 -10
  147. data/lib/playwright/url_matcher.rb +24 -2
  148. data/lib/playwright/utils.rb +48 -13
  149. data/lib/playwright/version.rb +2 -1
  150. data/lib/playwright/video.rb +54 -0
  151. data/lib/playwright/waiter.rb +166 -0
  152. data/lib/playwright/web_socket_client.rb +167 -0
  153. data/lib/playwright/web_socket_transport.rb +116 -0
  154. data/lib/playwright.rb +188 -11
  155. data/lib/playwright_api/android.rb +46 -11
  156. data/lib/playwright_api/android_device.rb +182 -31
  157. data/lib/playwright_api/android_input.rb +22 -13
  158. data/lib/playwright_api/android_socket.rb +18 -0
  159. data/lib/playwright_api/android_web_view.rb +24 -0
  160. data/lib/playwright_api/api_request.rb +26 -0
  161. data/lib/playwright_api/api_request_context.rb +311 -0
  162. data/lib/playwright_api/api_response.rb +92 -0
  163. data/lib/playwright_api/browser.rb +116 -103
  164. data/lib/playwright_api/browser_context.rb +290 -389
  165. data/lib/playwright_api/browser_type.rb +96 -118
  166. data/lib/playwright_api/cdp_session.rb +36 -39
  167. data/lib/playwright_api/clock.rb +121 -0
  168. data/lib/playwright_api/console_message.rb +35 -19
  169. data/lib/playwright_api/dialog.rb +53 -50
  170. data/lib/playwright_api/download.rb +49 -43
  171. data/lib/playwright_api/element_handle.rb +354 -402
  172. data/lib/playwright_api/file_chooser.rb +15 -18
  173. data/lib/playwright_api/frame.rb +703 -603
  174. data/lib/playwright_api/frame_locator.rb +285 -0
  175. data/lib/playwright_api/js_handle.rb +50 -76
  176. data/lib/playwright_api/keyboard.rb +67 -146
  177. data/lib/playwright_api/locator.rb +1304 -0
  178. data/lib/playwright_api/locator_assertions.rb +704 -0
  179. data/lib/playwright_api/mouse.rb +23 -29
  180. data/lib/playwright_api/page.rb +1196 -1176
  181. data/lib/playwright_api/page_assertions.rb +60 -0
  182. data/lib/playwright_api/playwright.rb +54 -122
  183. data/lib/playwright_api/request.rb +112 -74
  184. data/lib/playwright_api/response.rb +92 -20
  185. data/lib/playwright_api/route.rb +152 -62
  186. data/lib/playwright_api/selectors.rb +47 -61
  187. data/lib/playwright_api/touchscreen.rb +8 -2
  188. data/lib/playwright_api/tracing.rb +128 -0
  189. data/lib/playwright_api/web_socket.rb +43 -5
  190. data/lib/playwright_api/worker.rb +74 -34
  191. data/playwright.gemspec +14 -9
  192. data/sig/playwright.rbs +658 -0
  193. metadata +216 -50
  194. data/docs/api_coverage.md +0 -354
  195. data/lib/playwright/channel_owners/chromium_browser.rb +0 -8
  196. data/lib/playwright/channel_owners/chromium_browser_context.rb +0 -8
  197. data/lib/playwright/channel_owners/console_message.rb +0 -21
  198. data/lib/playwright/channel_owners/firefox_browser.rb +0 -8
  199. data/lib/playwright/channel_owners/selectors.rb +0 -4
  200. data/lib/playwright/channel_owners/webkit_browser.rb +0 -8
  201. data/lib/playwright/input_type.rb +0 -19
  202. data/lib/playwright/input_types/mouse.rb +0 -4
  203. data/lib/playwright/input_types/touchscreen.rb +0 -4
  204. data/lib/playwright/javascript/function.rb +0 -67
  205. data/lib/playwright/wait_helper.rb +0 -73
  206. data/lib/playwright_api/accessibility.rb +0 -93
  207. data/lib/playwright_api/binding_call.rb +0 -23
  208. data/lib/playwright_api/chromium_browser_context.rb +0 -57
  209. data/lib/playwright_api/video.rb +0 -24
@@ -0,0 +1,78 @@
1
+ ---
2
+ sidebar_position: 21
3
+ ---
4
+
5
+ # Reuse Cookie and LocalStorage
6
+
7
+ In most cases, authentication state is stored in cookie or local storage. When we just want to keep authenticated, it is a good solution to dump/load 'storage state' (= Cookie + LocalStorage).
8
+ https://playwright.dev/docs/next/auth#reuse-authentication-state
9
+
10
+ * Dump storage state using [BrowserContext#storage_state](/docs/api/browser_context#storage_state) with `path: /path/to/state.json`
11
+ * Load storage state by specifying the parameter `storageState: /path/to/state.json` into [Browser#new_context](/docs/api/browser#new_context) or [Browser#new_page](/docs/api/browser#new_page)
12
+
13
+ ## Example
14
+
15
+ Generally in browser automation, it is very difficult to bypass 2FA or reCAPTCHA in login screen. In such cases, we would consider
16
+
17
+ * Authenticate manually by hand
18
+ * Resume automation with the authentication result
19
+
20
+
21
+ ```ruby {16,21}
22
+ require 'playwright'
23
+ require 'pry'
24
+
25
+ force_login = !File.exist?('github_state.json')
26
+
27
+ Playwright.create(playwright_cli_executable_path: 'npx playwright') do |playwright|
28
+ if force_login
29
+ # Use headful mode for manual operation.
30
+ playwright.chromium.launch(headless: false, channel: 'chrome') do |browser|
31
+ page = browser.new_page
32
+ page.goto('https://github.com/login')
33
+
34
+ # Login manually.
35
+ binding.pry
36
+
37
+ page.context.storage_state(path: 'github_state.json')
38
+ end
39
+ end
40
+
41
+ playwright.chromium.launch do |browser|
42
+ page = browser.new_page(storageState: 'github_state.json')
43
+ page.goto('https://github.com/notifications')
44
+ page.screenshot(path: 'github_notification.png')
45
+ end
46
+ end
47
+ ```
48
+
49
+ When we execute this script at the first time (without github_state.json), login screen is shown:
50
+
51
+ ![login screen is shown](https://user-images.githubusercontent.com/11763113/129394130-7a248f6a-56f0-40b0-a4dd-f0f65d71b3a9.png)
52
+
53
+ and input credentials manually:
54
+
55
+ ![input credentials manually](https://user-images.githubusercontent.com/11763113/129394155-fccc280e-5e6b-46c7-8a4d-a99d7db02c7f.png)
56
+
57
+ and hit `exit` in Pry console.
58
+
59
+ ```
60
+
61
+ 9:
62
+ 10: # Login manually. Hit `exit` in Pry console after authenticated.
63
+ 11: require 'pry'
64
+ 12: binding.pry
65
+ 13:
66
+ => 14: page.context.storage_state(path: 'github_state.json')
67
+ 15: end if force_login
68
+ 16:
69
+ 17: playwright.chromium.launch do |browser|
70
+ 18: page = browser.new_page(storageState: 'github_state.json')
71
+ 19: page.goto('https://github.com/notifications')
72
+
73
+ [1] pry(main)> exit
74
+ ```
75
+
76
+ then we can enjoy automation with keeping authenticated. Login screen is never shown until github_state.json is deleted :)
77
+
78
+ ![github_notification.png](https://user-images.githubusercontent.com/11763113/129394879-838797eb-135f-41ab-b965-8d6fabde6109.png)
@@ -0,0 +1,671 @@
1
+ # API coverages
2
+
3
+ ## Request
4
+
5
+ * all_headers
6
+ * failure
7
+ * frame
8
+ * headers
9
+ * headers_array
10
+ * header_value
11
+ * navigation_request?
12
+ * method
13
+ * post_data
14
+ * post_data_buffer
15
+ * post_data_json
16
+ * redirected_from
17
+ * redirected_to
18
+ * resource_type
19
+ * response
20
+ * ~~service_worker~~
21
+ * sizes
22
+ * timing
23
+ * url
24
+
25
+ ## Response
26
+
27
+ * all_headers
28
+ * body
29
+ * finished
30
+ * frame
31
+ * from_service_worker
32
+ * headers
33
+ * headers_array
34
+ * header_value
35
+ * header_values
36
+ * json
37
+ * ok
38
+ * request
39
+ * security_details
40
+ * server_addr
41
+ * status
42
+ * status_text
43
+ * text
44
+ * url
45
+
46
+ ## Route
47
+
48
+ * abort
49
+ * continue
50
+ * fallback
51
+ * fetch
52
+ * fulfill
53
+ * request
54
+
55
+ ## WebSocket
56
+
57
+ * closed?
58
+ * url
59
+ * expect_event
60
+ * wait_for_event
61
+
62
+ ## Keyboard
63
+
64
+ * down
65
+ * insert_text
66
+ * press
67
+ * type
68
+ * up
69
+
70
+ ## Mouse
71
+
72
+ * click
73
+ * dblclick
74
+ * down
75
+ * move
76
+ * up
77
+ * wheel
78
+
79
+ ## Touchscreen
80
+
81
+ * tap_point
82
+
83
+ ## JSHandle
84
+
85
+ * as_element
86
+ * dispose
87
+ * evaluate
88
+ * evaluate_handle
89
+ * get_properties
90
+ * get_property
91
+ * json_value
92
+
93
+ ## ElementHandle
94
+
95
+ * bounding_box
96
+ * check
97
+ * click
98
+ * content_frame
99
+ * dblclick
100
+ * dispatch_event
101
+ * eval_on_selector
102
+ * eval_on_selector_all
103
+ * fill
104
+ * focus
105
+ * get_attribute
106
+ * hover
107
+ * inner_html
108
+ * inner_text
109
+ * input_value
110
+ * checked?
111
+ * disabled?
112
+ * editable?
113
+ * enabled?
114
+ * hidden?
115
+ * visible?
116
+ * owner_frame
117
+ * press
118
+ * query_selector
119
+ * query_selector_all
120
+ * screenshot
121
+ * scroll_into_view_if_needed
122
+ * select_option
123
+ * select_text
124
+ * set_checked
125
+ * set_input_files
126
+ * tap_point
127
+ * text_content
128
+ * type
129
+ * uncheck
130
+ * wait_for_element_state
131
+ * wait_for_selector
132
+
133
+ ## FileChooser
134
+
135
+ * element
136
+ * multiple?
137
+ * page
138
+ * set_files
139
+
140
+ ## Frame
141
+
142
+ * add_script_tag
143
+ * add_style_tag
144
+ * check
145
+ * child_frames
146
+ * click
147
+ * content
148
+ * dblclick
149
+ * dispatch_event
150
+ * drag_and_drop
151
+ * eval_on_selector
152
+ * eval_on_selector_all
153
+ * evaluate
154
+ * evaluate_handle
155
+ * fill
156
+ * focus
157
+ * frame_element
158
+ * frame_locator
159
+ * get_attribute
160
+ * get_by_alt_text
161
+ * get_by_label
162
+ * get_by_placeholder
163
+ * get_by_role
164
+ * get_by_test_id
165
+ * get_by_text
166
+ * get_by_title
167
+ * goto
168
+ * hover
169
+ * inner_html
170
+ * inner_text
171
+ * input_value
172
+ * checked?
173
+ * detached?
174
+ * disabled?
175
+ * editable?
176
+ * enabled?
177
+ * hidden?
178
+ * visible?
179
+ * locator
180
+ * name
181
+ * page
182
+ * parent_frame
183
+ * press
184
+ * query_selector
185
+ * query_selector_all
186
+ * select_option
187
+ * set_checked
188
+ * set_content
189
+ * set_input_files
190
+ * tap_point
191
+ * text_content
192
+ * title
193
+ * type
194
+ * uncheck
195
+ * url
196
+ * wait_for_function
197
+ * wait_for_load_state
198
+ * expect_navigation
199
+ * wait_for_selector
200
+ * wait_for_timeout
201
+ * wait_for_url
202
+
203
+ ## Worker
204
+
205
+ * evaluate
206
+ * evaluate_handle
207
+ * url
208
+ * expect_event
209
+
210
+ ## Selectors
211
+
212
+ * register
213
+ * set_test_id_attribute
214
+
215
+ ## Clock
216
+
217
+ * fast_forward
218
+ * install
219
+ * run_for
220
+ * pause_at
221
+ * resume
222
+ * set_fixed_time
223
+ * set_system_time
224
+
225
+ ## ConsoleMessage
226
+
227
+ * args
228
+ * location
229
+ * page
230
+ * text
231
+ * type
232
+ * worker
233
+
234
+ ## Dialog
235
+
236
+ * accept
237
+ * default_value
238
+ * dismiss
239
+ * message
240
+ * page
241
+ * type
242
+
243
+ ## Download
244
+
245
+ * cancel
246
+ * delete
247
+ * failure
248
+ * page
249
+ * path
250
+ * save_as
251
+ * suggested_filename
252
+ * url
253
+
254
+ ## Page
255
+
256
+ * add_init_script
257
+ * add_script_tag
258
+ * add_style_tag
259
+ * bring_to_front
260
+ * check
261
+ * click
262
+ * close
263
+ * content
264
+ * context
265
+ * dblclick
266
+ * dispatch_event
267
+ * drag_and_drop
268
+ * emulate_media
269
+ * eval_on_selector
270
+ * eval_on_selector_all
271
+ * evaluate
272
+ * evaluate_handle
273
+ * expose_binding
274
+ * expose_function
275
+ * fill
276
+ * focus
277
+ * frame
278
+ * frame_locator
279
+ * frames
280
+ * get_attribute
281
+ * get_by_alt_text
282
+ * get_by_label
283
+ * get_by_placeholder
284
+ * get_by_role
285
+ * get_by_test_id
286
+ * get_by_text
287
+ * get_by_title
288
+ * go_back
289
+ * go_forward
290
+ * ~~request_gc~~
291
+ * goto
292
+ * hover
293
+ * inner_html
294
+ * inner_text
295
+ * input_value
296
+ * checked?
297
+ * closed?
298
+ * disabled?
299
+ * editable?
300
+ * enabled?
301
+ * hidden?
302
+ * visible?
303
+ * console_messages
304
+ * page_errors
305
+ * locator
306
+ * main_frame
307
+ * opener
308
+ * pause
309
+ * pdf
310
+ * press
311
+ * query_selector
312
+ * query_selector_all
313
+ * requests
314
+ * ~~add_locator_handler~~
315
+ * ~~remove_locator_handler~~
316
+ * reload
317
+ * route
318
+ * route_from_har
319
+ * ~~route_web_socket~~
320
+ * screenshot
321
+ * select_option
322
+ * set_checked
323
+ * set_content
324
+ * set_default_navigation_timeout
325
+ * set_default_timeout
326
+ * set_extra_http_headers
327
+ * set_input_files
328
+ * set_viewport_size
329
+ * tap_point
330
+ * text_content
331
+ * title
332
+ * type
333
+ * uncheck
334
+ * unroute_all
335
+ * unroute
336
+ * url
337
+ * video
338
+ * viewport_size
339
+ * expect_console_message
340
+ * expect_download
341
+ * expect_event
342
+ * expect_file_chooser
343
+ * wait_for_function
344
+ * wait_for_load_state
345
+ * expect_navigation
346
+ * expect_popup
347
+ * expect_request
348
+ * expect_request_finished
349
+ * expect_response
350
+ * wait_for_selector
351
+ * wait_for_timeout
352
+ * wait_for_url
353
+ * expect_websocket
354
+ * expect_worker
355
+ * workers
356
+ * ~~wait_for_event~~
357
+ * clock
358
+ * keyboard
359
+ * mouse
360
+ * request
361
+ * touchscreen
362
+
363
+ ## BrowserContext
364
+
365
+ * add_cookies
366
+ * add_init_script
367
+ * background_pages
368
+ * browser
369
+ * clear_cookies
370
+ * clear_permissions
371
+ * close
372
+ * cookies
373
+ * expose_binding
374
+ * expose_function
375
+ * grant_permissions
376
+ * new_cdp_session
377
+ * new_page
378
+ * pages
379
+ * route
380
+ * route_from_har
381
+ * ~~route_web_socket~~
382
+ * service_workers
383
+ * set_default_navigation_timeout
384
+ * set_default_timeout
385
+ * set_extra_http_headers
386
+ * set_geolocation
387
+ * set_offline
388
+ * storage_state
389
+ * unroute_all
390
+ * unroute
391
+ * expect_console_message
392
+ * expect_event
393
+ * expect_page
394
+ * ~~wait_for_event~~
395
+ * clock
396
+ * request
397
+ * tracing
398
+
399
+ ## CDPSession
400
+
401
+ * detach
402
+ * send_message
403
+
404
+ ## Browser
405
+
406
+ * browser_type
407
+ * close
408
+ * contexts
409
+ * connected?
410
+ * new_browser_cdp_session
411
+ * new_context
412
+ * new_page
413
+ * start_tracing
414
+ * stop_tracing
415
+ * version
416
+
417
+ ## BrowserType
418
+
419
+ * ~~connect~~
420
+ * connect_over_cdp
421
+ * executable_path
422
+ * launch
423
+ * launch_persistent_context
424
+ * name
425
+
426
+ ## Playwright
427
+
428
+ * ~~stop~~
429
+ * chromium
430
+ * devices
431
+ * firefox
432
+ * ~~request~~
433
+ * selectors
434
+ * webkit
435
+
436
+ ## Tracing
437
+
438
+ * start
439
+ * start_chunk
440
+ * group
441
+ * group_end
442
+ * stop
443
+ * stop_chunk
444
+
445
+ ## Locator
446
+
447
+ * all
448
+ * all_inner_texts
449
+ * all_text_contents
450
+ * and
451
+ * aria_snapshot
452
+ * blur
453
+ * bounding_box
454
+ * check
455
+ * clear
456
+ * click
457
+ * count
458
+ * dblclick
459
+ * describe
460
+ * description
461
+ * dispatch_event
462
+ * drag_to
463
+ * element_handle
464
+ * element_handles
465
+ * content_frame
466
+ * evaluate
467
+ * evaluate_all
468
+ * evaluate_handle
469
+ * fill
470
+ * filter
471
+ * first
472
+ * focus
473
+ * frame_locator
474
+ * get_attribute
475
+ * get_by_alt_text
476
+ * get_by_label
477
+ * get_by_placeholder
478
+ * get_by_role
479
+ * get_by_test_id
480
+ * get_by_text
481
+ * get_by_title
482
+ * highlight
483
+ * hover
484
+ * inner_html
485
+ * inner_text
486
+ * input_value
487
+ * checked?
488
+ * disabled?
489
+ * editable?
490
+ * enabled?
491
+ * hidden?
492
+ * visible?
493
+ * last
494
+ * locator
495
+ * nth
496
+ * or
497
+ * page
498
+ * press
499
+ * press_sequentially
500
+ * screenshot
501
+ * scroll_into_view_if_needed
502
+ * select_option
503
+ * select_text
504
+ * set_checked
505
+ * set_input_files
506
+ * tap_point
507
+ * text_content
508
+ * type
509
+ * uncheck
510
+ * wait_for
511
+
512
+ ## FrameLocator
513
+
514
+ * first
515
+ * frame_locator
516
+ * get_by_alt_text
517
+ * get_by_label
518
+ * get_by_placeholder
519
+ * get_by_role
520
+ * get_by_test_id
521
+ * get_by_text
522
+ * get_by_title
523
+ * last
524
+ * locator
525
+ * nth
526
+ * owner
527
+
528
+ ## APIResponse
529
+
530
+ * body
531
+ * dispose
532
+ * headers
533
+ * headers_array
534
+ * json
535
+ * ok
536
+ * status
537
+ * status_text
538
+ * text
539
+ * url
540
+
541
+ ## APIRequestContext
542
+
543
+ * delete
544
+ * dispose
545
+ * fetch
546
+ * get
547
+ * head
548
+ * patch
549
+ * post
550
+ * put
551
+ * ~~storage_state~~
552
+
553
+ ## ~~APIRequest~~
554
+
555
+ * ~~new_context~~
556
+
557
+ ## LocatorAssertions
558
+
559
+ * not_to_be_attached
560
+ * not_to_be_checked
561
+ * not_to_be_disabled
562
+ * not_to_be_editable
563
+ * not_to_be_empty
564
+ * not_to_be_enabled
565
+ * not_to_be_focused
566
+ * not_to_be_hidden
567
+ * not_to_be_in_viewport
568
+ * not_to_be_visible
569
+ * not_to_contain_class
570
+ * not_to_contain_text
571
+ * not_to_have_accessible_description
572
+ * not_to_have_accessible_error_message
573
+ * not_to_have_accessible_name
574
+ * not_to_have_attribute
575
+ * not_to_have_class
576
+ * not_to_have_count
577
+ * not_to_have_css
578
+ * not_to_have_id
579
+ * not_to_have_js_property
580
+ * not_to_have_role
581
+ * not_to_have_text
582
+ * not_to_have_value
583
+ * not_to_have_values
584
+ * not_to_match_aria_snapshot
585
+ * to_be_attached
586
+ * to_be_checked
587
+ * to_be_disabled
588
+ * to_be_editable
589
+ * to_be_empty
590
+ * to_be_enabled
591
+ * to_be_focused
592
+ * to_be_hidden
593
+ * to_be_in_viewport
594
+ * to_be_visible
595
+ * to_contain_class
596
+ * to_contain_text
597
+ * to_have_accessible_description
598
+ * to_have_accessible_error_message
599
+ * to_have_accessible_name
600
+ * to_have_attribute
601
+ * to_have_class
602
+ * to_have_count
603
+ * to_have_css
604
+ * to_have_id
605
+ * to_have_js_property
606
+ * to_have_role
607
+ * to_have_text
608
+ * to_have_value
609
+ * to_have_values
610
+ * to_match_aria_snapshot
611
+
612
+ ## PageAssertions
613
+
614
+ * not_to_have_title
615
+ * not_to_have_url
616
+ * to_have_title
617
+ * to_have_url
618
+
619
+ ## Android
620
+
621
+ * ~~connect~~
622
+ * devices
623
+ * set_default_timeout
624
+
625
+ ## AndroidDevice
626
+
627
+ * close
628
+ * ~~drag~~
629
+ * ~~fill~~
630
+ * ~~fling~~
631
+ * info
632
+ * ~~install_apk~~
633
+ * launch_browser
634
+ * ~~long_tap~~
635
+ * model
636
+ * ~~open~~
637
+ * ~~pinch_close~~
638
+ * ~~pinch_open~~
639
+ * ~~press~~
640
+ * ~~push~~
641
+ * screenshot
642
+ * ~~scroll~~
643
+ * serial
644
+ * ~~set_default_timeout~~
645
+ * shell
646
+ * ~~swipe~~
647
+ * ~~tap_point~~
648
+ * ~~wait~~
649
+ * ~~wait_for_event~~
650
+ * ~~web_view~~
651
+ * ~~web_views~~
652
+ * input
653
+
654
+ ## AndroidInput
655
+
656
+ * drag
657
+ * press
658
+ * ~~swipe~~
659
+ * tap_point
660
+ * type
661
+
662
+ ## ~~AndroidSocket~~
663
+
664
+ * ~~close~~
665
+ * ~~write~~
666
+
667
+ ## ~~AndroidWebView~~
668
+
669
+ * ~~page~~
670
+ * ~~pid~~
671
+ * ~~pkg~~