@checkly/playwright-core 1.51.17-beta.2 → 1.54.2-beta.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 (376) hide show
  1. package/ThirdPartyNotices.txt +65 -123
  2. package/browsers.json +16 -14
  3. package/index.js +1 -1
  4. package/lib/androidServerImpl.js +47 -50
  5. package/lib/browserServerImpl.js +89 -69
  6. package/lib/checkly/escapeRegExp.js +23 -27
  7. package/lib/checkly/fetch.js +64 -46
  8. package/lib/checkly/secretsFilter.js +49 -35
  9. package/lib/cli/driver.js +71 -69
  10. package/lib/cli/program.js +400 -359
  11. package/lib/cli/programWithTestStub.js +51 -45
  12. package/lib/client/accessibility.js +31 -32
  13. package/lib/client/android.js +151 -242
  14. package/lib/client/api.js +135 -283
  15. package/lib/client/artifact.js +39 -36
  16. package/lib/client/browser.js +96 -71
  17. package/lib/client/browserContext.js +314 -345
  18. package/lib/client/browserType.js +103 -127
  19. package/lib/client/cdpSession.js +29 -31
  20. package/lib/client/channelOwner.js +90 -113
  21. package/lib/client/clientHelper.js +48 -39
  22. package/lib/client/clientInstrumentation.js +40 -37
  23. package/lib/client/clientStackTrace.js +41 -37
  24. package/lib/client/clock.js +36 -36
  25. package/lib/client/connection.js +188 -214
  26. package/lib/client/consoleMessage.js +31 -28
  27. package/lib/client/coverage.js +25 -22
  28. package/lib/client/dialog.js +30 -31
  29. package/lib/client/download.js +25 -25
  30. package/lib/client/electron.js +80 -77
  31. package/lib/client/elementHandle.js +120 -159
  32. package/lib/client/errors.js +53 -53
  33. package/lib/client/eventEmitter.js +124 -121
  34. package/lib/client/events.js +72 -68
  35. package/lib/client/fetch.js +166 -190
  36. package/lib/client/fileChooser.js +25 -24
  37. package/lib/client/fileUtils.js +31 -28
  38. package/lib/client/frame.js +207 -306
  39. package/lib/client/harRouter.js +42 -52
  40. package/lib/client/input.js +42 -69
  41. package/lib/client/jsHandle.js +54 -69
  42. package/lib/client/jsonPipe.js +27 -23
  43. package/lib/client/localUtils.js +29 -29
  44. package/lib/client/locator.js +145 -237
  45. package/lib/client/network.js +282 -307
  46. package/lib/client/page.js +269 -318
  47. package/lib/client/platform.js +46 -43
  48. package/lib/client/playwright.js +51 -76
  49. package/lib/client/selectors.js +45 -63
  50. package/lib/client/stream.js +29 -25
  51. package/lib/client/timeoutSettings.js +55 -41
  52. package/lib/client/tracing.js +49 -96
  53. package/lib/client/types.js +26 -22
  54. package/lib/client/video.js +35 -27
  55. package/lib/client/waiter.js +69 -88
  56. package/lib/client/webError.js +25 -23
  57. package/lib/client/webSocket.js +43 -56
  58. package/lib/client/worker.js +48 -56
  59. package/lib/client/writableStream.js +27 -23
  60. package/lib/generated/bindingsControllerSource.js +28 -0
  61. package/lib/generated/clockSource.js +26 -6
  62. package/lib/generated/consoleApiSource.js +26 -6
  63. package/lib/generated/injectedScriptSource.js +26 -6
  64. package/lib/generated/pollingRecorderSource.js +26 -6
  65. package/lib/generated/storageScriptSource.js +28 -0
  66. package/lib/generated/utilityScriptSource.js +26 -6
  67. package/lib/generated/webSocketMockSource.js +333 -5
  68. package/lib/inProcessFactory.js +51 -53
  69. package/lib/inprocess.js +2 -19
  70. package/lib/outofprocess.js +51 -46
  71. package/lib/protocol/serializers.js +153 -134
  72. package/lib/protocol/validator.js +2807 -2739
  73. package/lib/protocol/validatorPrimitives.js +114 -73
  74. package/lib/remote/playwrightConnection.js +88 -242
  75. package/lib/remote/playwrightServer.js +305 -92
  76. package/lib/server/accessibility.js +44 -37
  77. package/lib/server/android/android.js +251 -241
  78. package/lib/server/android/backendAdb.js +87 -82
  79. package/lib/server/artifact.js +78 -55
  80. package/lib/server/bidi/bidiBrowser.js +297 -158
  81. package/lib/server/bidi/bidiChromium.js +119 -89
  82. package/lib/server/bidi/bidiConnection.js +66 -83
  83. package/lib/server/bidi/bidiExecutionContext.js +129 -113
  84. package/lib/server/bidi/bidiFirefox.js +86 -76
  85. package/lib/server/bidi/bidiInput.js +106 -117
  86. package/lib/server/bidi/bidiNetworkManager.js +142 -159
  87. package/lib/server/bidi/bidiOverCdp.js +57 -58
  88. package/lib/server/bidi/bidiPage.js +260 -260
  89. package/lib/server/bidi/bidiPdf.js +52 -86
  90. package/lib/server/bidi/third_party/bidiCommands.d.js +22 -0
  91. package/lib/server/bidi/third_party/bidiDeserializer.js +55 -50
  92. package/lib/server/bidi/third_party/bidiKeyboard.js +236 -220
  93. package/lib/server/bidi/third_party/bidiProtocol.js +22 -137
  94. package/lib/server/bidi/third_party/bidiProtocolCore.js +152 -0
  95. package/lib/server/bidi/third_party/bidiProtocolPermissions.js +42 -0
  96. package/lib/server/bidi/third_party/bidiSerializer.js +67 -63
  97. package/lib/server/bidi/third_party/firefoxPrefs.js +141 -119
  98. package/lib/server/browser.js +93 -95
  99. package/lib/server/browserContext.js +419 -429
  100. package/lib/server/browserType.js +186 -216
  101. package/lib/server/callLog.js +47 -44
  102. package/lib/server/chromium/chromium.js +235 -203
  103. package/lib/server/chromium/chromiumSwitches.js +100 -67
  104. package/lib/server/chromium/crAccessibility.js +157 -131
  105. package/lib/server/chromium/crBrowser.js +310 -292
  106. package/lib/server/chromium/crConnection.js +95 -121
  107. package/lib/server/chromium/crCoverage.js +121 -131
  108. package/lib/server/chromium/crDevTools.js +60 -51
  109. package/lib/server/chromium/crDragDrop.js +68 -84
  110. package/lib/server/chromium/crExecutionContext.js +89 -83
  111. package/lib/server/chromium/crInput.js +118 -113
  112. package/lib/server/chromium/crNetworkManager.js +274 -375
  113. package/lib/server/chromium/crPage.js +536 -593
  114. package/lib/server/chromium/crPdf.js +54 -86
  115. package/lib/server/chromium/crProtocolHelper.js +92 -80
  116. package/lib/server/chromium/crServiceWorker.js +84 -73
  117. package/lib/server/chromium/defaultFontFamilies.js +152 -135
  118. package/lib/server/chromium/protocol.d.js +16 -0
  119. package/lib/server/chromium/videoRecorder.js +66 -99
  120. package/lib/server/clock.js +107 -83
  121. package/lib/server/codegen/csharp.js +192 -162
  122. package/lib/server/codegen/java.js +156 -129
  123. package/lib/server/codegen/javascript.js +163 -148
  124. package/lib/server/codegen/jsonl.js +32 -28
  125. package/lib/server/codegen/language.js +75 -52
  126. package/lib/server/codegen/languages.js +65 -27
  127. package/lib/server/codegen/python.js +141 -126
  128. package/lib/server/codegen/types.js +15 -4
  129. package/lib/server/console.js +28 -32
  130. package/lib/server/cookieStore.js +108 -86
  131. package/lib/server/debugController.js +147 -151
  132. package/lib/server/debugger.js +86 -78
  133. package/lib/server/deviceDescriptors.js +37 -24
  134. package/lib/server/deviceDescriptorsSource.json +238 -128
  135. package/lib/server/dialog.js +84 -39
  136. package/lib/server/dispatchers/androidDispatcher.js +257 -148
  137. package/lib/server/dispatchers/artifactDispatcher.js +79 -79
  138. package/lib/server/dispatchers/browserContextDispatcher.js +289 -259
  139. package/lib/server/dispatchers/browserDispatcher.js +96 -148
  140. package/lib/server/dispatchers/browserTypeDispatcher.js +50 -41
  141. package/lib/server/dispatchers/cdpSessionDispatcher.js +35 -39
  142. package/lib/server/dispatchers/debugControllerDispatcher.js +65 -83
  143. package/lib/server/dispatchers/dialogDispatcher.js +34 -31
  144. package/lib/server/dispatchers/dispatcher.js +208 -248
  145. package/lib/server/dispatchers/electronDispatcher.js +66 -70
  146. package/lib/server/dispatchers/elementHandlerDispatcher.js +164 -216
  147. package/lib/server/dispatchers/frameDispatcher.js +211 -272
  148. package/lib/server/dispatchers/jsHandleDispatcher.js +63 -75
  149. package/lib/server/dispatchers/jsonPipeDispatcher.js +37 -38
  150. package/lib/server/dispatchers/localUtilsDispatcher.js +121 -119
  151. package/lib/server/dispatchers/networkDispatchers.js +117 -128
  152. package/lib/server/dispatchers/pageDispatcher.js +256 -248
  153. package/lib/server/dispatchers/playwrightDispatcher.js +92 -87
  154. package/lib/server/dispatchers/streamDispatcher.js +52 -48
  155. package/lib/server/dispatchers/tracingDispatcher.js +47 -52
  156. package/lib/server/dispatchers/webSocketRouteDispatcher.js +126 -150
  157. package/lib/server/dispatchers/writableStreamDispatcher.js +65 -43
  158. package/lib/server/dom.js +485 -582
  159. package/lib/server/download.js +47 -37
  160. package/lib/server/electron/electron.js +216 -243
  161. package/lib/server/electron/loader.js +9 -37
  162. package/lib/server/errors.js +47 -46
  163. package/lib/server/fetch.js +317 -360
  164. package/lib/server/fileChooser.js +25 -24
  165. package/lib/server/fileUploadUtils.js +66 -60
  166. package/lib/server/firefox/ffAccessibility.js +153 -131
  167. package/lib/server/firefox/ffBrowser.js +268 -305
  168. package/lib/server/firefox/ffConnection.js +63 -84
  169. package/lib/server/firefox/ffExecutionContext.js +92 -73
  170. package/lib/server/firefox/ffInput.js +82 -84
  171. package/lib/server/firefox/ffNetworkManager.js +137 -114
  172. package/lib/server/firefox/ffPage.js +261 -293
  173. package/lib/server/firefox/firefox.js +80 -72
  174. package/lib/server/firefox/protocol.d.js +16 -0
  175. package/lib/server/formData.js +107 -35
  176. package/lib/server/frameSelectors.js +98 -114
  177. package/lib/server/frames.js +845 -1055
  178. package/lib/server/har/harRecorder.js +85 -77
  179. package/lib/server/har/harTracer.js +290 -223
  180. package/lib/server/harBackend.js +80 -80
  181. package/lib/server/helper.js +55 -59
  182. package/lib/server/index.js +59 -99
  183. package/lib/server/input.js +151 -189
  184. package/lib/server/instrumentation.js +57 -44
  185. package/lib/server/javascript.js +133 -134
  186. package/lib/server/launchApp.js +113 -75
  187. package/lib/server/localUtils.js +150 -142
  188. package/lib/server/macEditingCommands.js +141 -137
  189. package/lib/server/network.js +299 -303
  190. package/lib/server/page.js +513 -544
  191. package/lib/server/pipeTransport.js +49 -45
  192. package/lib/server/playwright.js +58 -67
  193. package/lib/server/progress.js +137 -68
  194. package/lib/server/protocolError.js +34 -31
  195. package/lib/server/recorder/chat.js +70 -86
  196. package/lib/server/recorder/recorderApp.js +341 -176
  197. package/lib/server/recorder/recorderInTraceViewer.js +65 -94
  198. package/lib/server/recorder/recorderRunner.js +93 -116
  199. package/lib/server/recorder/recorderSignalProcessor.js +83 -0
  200. package/lib/server/recorder/recorderUtils.js +104 -47
  201. package/lib/server/recorder/throttledFile.js +42 -30
  202. package/lib/server/recorder.js +395 -275
  203. package/lib/server/registry/browserFetcher.js +106 -101
  204. package/lib/server/registry/dependencies.js +245 -196
  205. package/lib/server/registry/index.js +930 -803
  206. package/lib/server/registry/nativeDeps.js +1073 -464
  207. package/lib/server/registry/oopDownloadBrowserMain.js +57 -75
  208. package/lib/server/screenshotter.js +160 -191
  209. package/lib/server/selectors.js +90 -51
  210. package/lib/server/socksClientCertificatesInterceptor.js +171 -186
  211. package/lib/server/socksInterceptor.js +62 -70
  212. package/lib/server/trace/recorder/snapshotter.js +76 -102
  213. package/lib/server/trace/recorder/snapshotterInjected.js +238 -217
  214. package/lib/server/trace/recorder/tracing.js +354 -362
  215. package/lib/server/trace/test/inMemorySnapshotter.js +46 -52
  216. package/lib/server/trace/viewer/traceViewer.js +160 -147
  217. package/lib/server/transport.js +119 -134
  218. package/lib/server/types.js +26 -22
  219. package/lib/server/usKeyboardLayout.js +135 -545
  220. package/lib/server/utils/ascii.js +39 -26
  221. package/lib/server/utils/comparators.js +105 -103
  222. package/lib/server/utils/crypto.js +157 -112
  223. package/lib/server/utils/debug.js +36 -32
  224. package/lib/server/utils/debugLogger.js +77 -48
  225. package/lib/server/utils/env.js +52 -37
  226. package/lib/server/utils/eventsHelper.js +29 -28
  227. package/lib/server/utils/expectUtils.js +31 -26
  228. package/lib/server/utils/fileUtils.js +123 -136
  229. package/lib/server/utils/happyEyeballs.js +141 -126
  230. package/lib/server/utils/hostPlatform.js +84 -120
  231. package/lib/server/utils/httpServer.js +106 -121
  232. package/lib/server/utils/image_tools/colorUtils.js +42 -51
  233. package/lib/server/utils/image_tools/compare.js +44 -43
  234. package/lib/server/utils/image_tools/imageChannel.js +38 -30
  235. package/lib/server/utils/image_tools/stats.js +40 -40
  236. package/lib/server/utils/linuxUtils.js +50 -37
  237. package/lib/server/utils/network.js +152 -96
  238. package/lib/server/utils/nodePlatform.js +87 -79
  239. package/lib/server/utils/pipeTransport.js +44 -42
  240. package/lib/server/utils/processLauncher.js +111 -121
  241. package/lib/server/utils/profiler.js +52 -39
  242. package/lib/server/utils/socksProxy.js +280 -339
  243. package/lib/server/utils/spawnAsync.js +37 -41
  244. package/lib/server/utils/task.js +31 -38
  245. package/lib/server/utils/userAgent.js +73 -66
  246. package/lib/server/utils/wsServer.js +68 -75
  247. package/lib/server/utils/zipFile.js +36 -37
  248. package/lib/server/utils/zones.js +37 -34
  249. package/lib/server/webkit/protocol.d.js +16 -0
  250. package/lib/server/webkit/webkit.js +77 -61
  251. package/lib/server/webkit/wkAccessibility.js +161 -118
  252. package/lib/server/webkit/wkBrowser.js +193 -184
  253. package/lib/server/webkit/wkConnection.js +59 -83
  254. package/lib/server/webkit/wkExecutionContext.js +85 -70
  255. package/lib/server/webkit/wkInput.js +97 -95
  256. package/lib/server/webkit/wkInterceptableRequest.js +102 -95
  257. package/lib/server/webkit/wkPage.js +568 -667
  258. package/lib/server/webkit/wkProvisionalPage.js +45 -56
  259. package/lib/server/webkit/wkWorkers.js +79 -79
  260. package/lib/utils/expectUtils.js +31 -26
  261. package/lib/utils/isomorphic/ariaSnapshot.js +149 -152
  262. package/lib/utils/isomorphic/assert.js +28 -22
  263. package/lib/utils/isomorphic/colors.js +66 -59
  264. package/lib/utils/isomorphic/cssParser.js +120 -125
  265. package/lib/utils/isomorphic/cssTokenizer.js +436 -364
  266. package/lib/utils/isomorphic/headers.js +38 -37
  267. package/lib/utils/isomorphic/locatorGenerators.js +358 -357
  268. package/lib/utils/isomorphic/locatorParser.js +96 -105
  269. package/lib/utils/isomorphic/locatorUtils.js +63 -44
  270. package/lib/utils/isomorphic/manualPromise.js +46 -39
  271. package/lib/utils/isomorphic/mimeType.js +447 -25
  272. package/lib/utils/isomorphic/multimap.js +34 -27
  273. package/lib/utils/isomorphic/protocolFormatter.js +68 -0
  274. package/lib/utils/isomorphic/protocolMetainfo.js +321 -0
  275. package/lib/utils/isomorphic/recorderUtils.js +140 -181
  276. package/lib/utils/isomorphic/rtti.js +35 -33
  277. package/lib/utils/isomorphic/selectorParser.js +182 -193
  278. package/lib/utils/isomorphic/semaphore.js +27 -24
  279. package/lib/utils/isomorphic/stackTrace.js +87 -98
  280. package/lib/utils/isomorphic/stringUtils.js +98 -112
  281. package/lib/utils/isomorphic/time.js +46 -22
  282. package/lib/utils/isomorphic/timeoutRunner.js +53 -53
  283. package/lib/utils/isomorphic/traceUtils.js +37 -41
  284. package/lib/utils/isomorphic/types.js +15 -4
  285. package/lib/utils/isomorphic/urlMatch.js +113 -67
  286. package/lib/utils/isomorphic/utilityScriptSerializers.js +251 -0
  287. package/lib/utils.js +101 -443
  288. package/lib/utilsBundle.js +101 -52
  289. package/lib/utilsBundleImpl/index.js +160 -150
  290. package/lib/zipBundle.js +32 -23
  291. package/lib/zipBundleImpl.js +4 -4
  292. package/package.json +1 -1
  293. package/types/protocol.d.ts +1267 -1057
  294. package/types/types.d.ts +131 -29
  295. package/lib/common/socksProxy.js +0 -569
  296. package/lib/common/timeoutSettings.js +0 -73
  297. package/lib/common/types.js +0 -5
  298. package/lib/image_tools/colorUtils.js +0 -98
  299. package/lib/image_tools/compare.js +0 -108
  300. package/lib/image_tools/imageChannel.js +0 -70
  301. package/lib/image_tools/stats.js +0 -102
  302. package/lib/protocol/debug.js +0 -27
  303. package/lib/protocol/transport.js +0 -82
  304. package/lib/server/dispatchers/selectorsDispatcher.js +0 -36
  305. package/lib/server/isomorphic/utilityScriptSerializers.js +0 -229
  306. package/lib/server/recorder/contextRecorder.js +0 -290
  307. package/lib/server/recorder/recorderCollection.js +0 -104
  308. package/lib/server/recorder/recorderFrontend.js +0 -5
  309. package/lib/server/storageScript.js +0 -160
  310. package/lib/server/timeoutSettings.js +0 -74
  311. package/lib/third_party/diff_match_patch.js +0 -2222
  312. package/lib/utils/ascii.js +0 -31
  313. package/lib/utils/comparators.js +0 -171
  314. package/lib/utils/crypto.js +0 -174
  315. package/lib/utils/debug.js +0 -46
  316. package/lib/utils/debugLogger.js +0 -91
  317. package/lib/utils/env.js +0 -49
  318. package/lib/utils/eventsHelper.js +0 -38
  319. package/lib/utils/fileUtils.js +0 -205
  320. package/lib/utils/happy-eyeballs.js +0 -210
  321. package/lib/utils/headers.js +0 -52
  322. package/lib/utils/hostPlatform.js +0 -133
  323. package/lib/utils/httpServer.js +0 -237
  324. package/lib/utils/index.js +0 -368
  325. package/lib/utils/linuxUtils.js +0 -78
  326. package/lib/utils/manualPromise.js +0 -109
  327. package/lib/utils/multimap.js +0 -75
  328. package/lib/utils/network.js +0 -160
  329. package/lib/utils/processLauncher.js +0 -248
  330. package/lib/utils/profiler.js +0 -53
  331. package/lib/utils/rtti.js +0 -44
  332. package/lib/utils/semaphore.js +0 -51
  333. package/lib/utils/spawnAsync.js +0 -45
  334. package/lib/utils/stackTrace.js +0 -121
  335. package/lib/utils/task.js +0 -58
  336. package/lib/utils/time.js +0 -37
  337. package/lib/utils/timeoutRunner.js +0 -66
  338. package/lib/utils/traceUtils.js +0 -44
  339. package/lib/utils/userAgent.js +0 -105
  340. package/lib/utils/wsServer.js +0 -127
  341. package/lib/utils/zipFile.js +0 -75
  342. package/lib/utils/zones.js +0 -62
  343. package/lib/vite/htmlReport/index.html +0 -69
  344. package/lib/vite/recorder/assets/codeMirrorModule-B9YMkrwa.js +0 -24
  345. package/lib/vite/recorder/assets/codeMirrorModule-C3UTv-Ge.css +0 -1
  346. package/lib/vite/recorder/assets/codicon-DCmgc-ay.ttf +0 -0
  347. package/lib/vite/recorder/assets/index-ELPgmkwA.js +0 -184
  348. package/lib/vite/recorder/assets/index-eHBmevrY.css +0 -1
  349. package/lib/vite/recorder/index.html +0 -29
  350. package/lib/vite/recorder/playwright-logo.svg +0 -9
  351. package/lib/vite/traceViewer/assets/codeMirrorModule-gU1OOCQO.js +0 -24
  352. package/lib/vite/traceViewer/assets/defaultSettingsView-B5n_FjMx.js +0 -1
  353. package/lib/vite/traceViewer/assets/inspectorTab-6Tru8Mn_.js +0 -235
  354. package/lib/vite/traceViewer/assets/workbench-B_Nj4NA2.js +0 -25
  355. package/lib/vite/traceViewer/assets/xtermModule-BoAIEibi.js +0 -9
  356. package/lib/vite/traceViewer/codeMirrorModule.C3UTv-Ge.css +0 -1
  357. package/lib/vite/traceViewer/codicon.DCmgc-ay.ttf +0 -0
  358. package/lib/vite/traceViewer/defaultSettingsView.CO3FR0CX.css +0 -1
  359. package/lib/vite/traceViewer/embedded.DpNPH6mk.js +0 -2
  360. package/lib/vite/traceViewer/embedded.html +0 -18
  361. package/lib/vite/traceViewer/embedded.mLhjB5IF.css +0 -1
  362. package/lib/vite/traceViewer/index.CFOW-Ezb.css +0 -1
  363. package/lib/vite/traceViewer/index.CuE3SYGw.js +0 -2
  364. package/lib/vite/traceViewer/index.html +0 -47
  365. package/lib/vite/traceViewer/inspectorTab.CXDulcFG.css +0 -1
  366. package/lib/vite/traceViewer/playwright-logo.svg +0 -9
  367. package/lib/vite/traceViewer/recorder.BD-uZJs7.js +0 -2
  368. package/lib/vite/traceViewer/recorder.html +0 -17
  369. package/lib/vite/traceViewer/recorder.tn0RQdqM.css +0 -0
  370. package/lib/vite/traceViewer/snapshot.html +0 -21
  371. package/lib/vite/traceViewer/sw.bundle.js +0 -3
  372. package/lib/vite/traceViewer/uiMode.BatfzHMG.css +0 -1
  373. package/lib/vite/traceViewer/uiMode.DHrNgddz.js +0 -5
  374. package/lib/vite/traceViewer/uiMode.html +0 -21
  375. package/lib/vite/traceViewer/workbench.B9vIAzH9.css +0 -1
  376. package/lib/vite/traceViewer/xtermModule.Beg8tuEN.css +0 -32
@@ -1,75 +1,74 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var locator_exports = {};
20
+ __export(locator_exports, {
21
+ FrameLocator: () => FrameLocator,
22
+ Locator: () => Locator,
23
+ setTestIdAttribute: () => setTestIdAttribute,
24
+ testIdAttributeName: () => testIdAttributeName
5
25
  });
6
- exports.Locator = exports.FrameLocator = void 0;
7
- exports.setTestIdAttribute = setTestIdAttribute;
8
- exports.testIdAttributeName = testIdAttributeName;
9
- var _elementHandle = require("./elementHandle");
10
- var _jsHandle = require("./jsHandle");
11
- var _locatorGenerators = require("../utils/isomorphic/locatorGenerators");
12
- var _locatorUtils = require("../utils/isomorphic/locatorUtils");
13
- var _stringUtils = require("../utils/isomorphic/stringUtils");
14
- var _rtti = require("../utils/isomorphic/rtti");
15
- var _time = require("../utils/isomorphic/time");
16
- /**
17
- * Copyright (c) Microsoft Corporation.
18
- *
19
- * Licensed under the Apache License, Version 2.0 (the "License");
20
- * you may not use this file except in compliance with the License.
21
- * You may obtain a copy of the License at
22
- *
23
- * http://www.apache.org/licenses/LICENSE-2.0
24
- *
25
- * Unless required by applicable law or agreed to in writing, software
26
- * distributed under the License is distributed on an "AS IS" BASIS,
27
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
28
- * See the License for the specific language governing permissions and
29
- * limitations under the License.
30
- */
31
-
26
+ module.exports = __toCommonJS(locator_exports);
27
+ var import_elementHandle = require("./elementHandle");
28
+ var import_locatorGenerators = require("../utils/isomorphic/locatorGenerators");
29
+ var import_locatorUtils = require("../utils/isomorphic/locatorUtils");
30
+ var import_stringUtils = require("../utils/isomorphic/stringUtils");
31
+ var import_rtti = require("../utils/isomorphic/rtti");
32
+ var import_time = require("../utils/isomorphic/time");
32
33
  class Locator {
33
34
  constructor(frame, selector, options) {
34
- this._frame = void 0;
35
- this._selector = void 0;
36
35
  this._frame = frame;
37
36
  this._selector = selector;
38
- if (options !== null && options !== void 0 && options.hasText) this._selector += ` >> internal:has-text=${(0, _stringUtils.escapeForTextSelector)(options.hasText, false)}`;
39
- if (options !== null && options !== void 0 && options.hasNotText) this._selector += ` >> internal:has-not-text=${(0, _stringUtils.escapeForTextSelector)(options.hasNotText, false)}`;
40
- if (options !== null && options !== void 0 && options.has) {
37
+ if (options?.hasText)
38
+ this._selector += ` >> internal:has-text=${(0, import_stringUtils.escapeForTextSelector)(options.hasText, false)}`;
39
+ if (options?.hasNotText)
40
+ this._selector += ` >> internal:has-not-text=${(0, import_stringUtils.escapeForTextSelector)(options.hasNotText, false)}`;
41
+ if (options?.has) {
41
42
  const locator = options.has;
42
- if (locator._frame !== frame) throw new Error(`Inner "has" locator must belong to the same frame.`);
43
+ if (locator._frame !== frame)
44
+ throw new Error(`Inner "has" locator must belong to the same frame.`);
43
45
  this._selector += ` >> internal:has=` + JSON.stringify(locator._selector);
44
46
  }
45
- if (options !== null && options !== void 0 && options.hasNot) {
47
+ if (options?.hasNot) {
46
48
  const locator = options.hasNot;
47
- if (locator._frame !== frame) throw new Error(`Inner "hasNot" locator must belong to the same frame.`);
49
+ if (locator._frame !== frame)
50
+ throw new Error(`Inner "hasNot" locator must belong to the same frame.`);
48
51
  this._selector += ` >> internal:has-not=` + JSON.stringify(locator._selector);
49
52
  }
50
- if ((options === null || options === void 0 ? void 0 : options.visible) !== undefined) this._selector += ` >> visible=${options.visible ? 'true' : 'false'}`;
51
- if (this._frame._platform.inspectCustom) this[this._frame._platform.inspectCustom] = () => this._inspect();
52
- }
53
- async _withElement(task, timeout) {
54
- timeout = this._frame.page()._timeoutSettings.timeout({
55
- timeout
56
- });
57
- const deadline = timeout ? (0, _time.monotonicTime)() + timeout : 0;
53
+ if (options?.visible !== void 0)
54
+ this._selector += ` >> visible=${options.visible ? "true" : "false"}`;
55
+ if (this._frame._platform.inspectCustom)
56
+ this[this._frame._platform.inspectCustom] = () => this._inspect();
57
+ }
58
+ async _withElement(task, options) {
59
+ const timeout = this._frame._timeout({ timeout: options.timeout });
60
+ const deadline = timeout ? (0, import_time.monotonicTime)() + timeout : 0;
58
61
  return await this._frame._wrapApiCall(async () => {
59
- const result = await this._frame._channel.waitForSelector({
60
- selector: this._selector,
61
- strict: true,
62
- state: 'attached',
63
- timeout
64
- });
65
- const handle = _elementHandle.ElementHandle.fromNullable(result.element);
66
- if (!handle) throw new Error(`Could not resolve ${this._selector} to DOM Element`);
62
+ const result = await this._frame._channel.waitForSelector({ selector: this._selector, strict: true, state: "attached", timeout });
63
+ const handle = import_elementHandle.ElementHandle.fromNullable(result.element);
64
+ if (!handle)
65
+ throw new Error(`Could not resolve ${this._selector} to DOM Element`);
67
66
  try {
68
- return await task(handle, deadline ? deadline - (0, _time.monotonicTime)() : 0);
67
+ return await task(handle, deadline ? deadline - (0, import_time.monotonicTime)() : 0);
69
68
  } finally {
70
69
  await handle.dispose();
71
70
  }
72
- });
71
+ }, { title: options.title, internal: options.internal });
73
72
  }
74
73
  _equals(locator) {
75
74
  return this._frame === locator._frame && this._selector === locator._selector;
@@ -78,31 +77,19 @@ class Locator {
78
77
  return this._frame.page();
79
78
  }
80
79
  async boundingBox(options) {
81
- return await this._withElement(h => h.boundingBox(), options === null || options === void 0 ? void 0 : options.timeout);
80
+ return await this._withElement((h) => h.boundingBox(), { title: "Bounding box", timeout: options?.timeout });
82
81
  }
83
82
  async check(options = {}) {
84
- return await this._frame.check(this._selector, {
85
- strict: true,
86
- ...options
87
- });
83
+ return await this._frame.check(this._selector, { strict: true, ...options });
88
84
  }
89
85
  async click(options = {}) {
90
- return await this._frame.click(this._selector, {
91
- strict: true,
92
- ...options
93
- });
86
+ return await this._frame.click(this._selector, { strict: true, ...options });
94
87
  }
95
88
  async dblclick(options = {}) {
96
- return await this._frame.dblclick(this._selector, {
97
- strict: true,
98
- ...options
99
- });
89
+ await this._frame.dblclick(this._selector, { strict: true, ...options });
100
90
  }
101
91
  async dispatchEvent(type, eventInit = {}, options) {
102
- return await this._frame.dispatchEvent(this._selector, type, eventInit, {
103
- strict: true,
104
- ...options
105
- });
92
+ return await this._frame.dispatchEvent(this._selector, type, eventInit, { strict: true, ...options });
106
93
  }
107
94
  async dragTo(target, options = {}) {
108
95
  return await this._frame.dragAndDrop(this._selector, target._selector, {
@@ -111,68 +98,62 @@ class Locator {
111
98
  });
112
99
  }
113
100
  async evaluate(pageFunction, arg, options) {
114
- return await this._withElement(h => h.evaluate(pageFunction, arg), options === null || options === void 0 ? void 0 : options.timeout);
101
+ return await this._withElement((h) => h.evaluate(pageFunction, arg), { title: "Evaluate", timeout: options?.timeout });
115
102
  }
116
103
  async evaluateAll(pageFunction, arg) {
117
104
  return await this._frame.$$eval(this._selector, pageFunction, arg);
118
105
  }
119
106
  async evaluateHandle(pageFunction, arg, options) {
120
- return await this._withElement(h => h.evaluateHandle(pageFunction, arg), options === null || options === void 0 ? void 0 : options.timeout);
107
+ return await this._withElement((h) => h.evaluateHandle(pageFunction, arg), { title: "Evaluate", timeout: options?.timeout });
121
108
  }
122
109
  async fill(value, options = {}) {
123
- return await this._frame.fill(this._selector, value, {
124
- strict: true,
125
- ...options
126
- });
110
+ return await this._frame.fill(this._selector, value, { strict: true, ...options });
127
111
  }
128
112
  async clear(options = {}) {
129
- return await this.fill('', options);
113
+ await this._frame._wrapApiCall(() => this.fill("", options), { title: "Clear" });
130
114
  }
131
115
  async _highlight() {
132
- // VS Code extension uses this one, keep it for now.
133
116
  return await this._frame._highlight(this._selector);
134
117
  }
135
118
  async highlight() {
136
119
  return await this._frame._highlight(this._selector);
137
120
  }
138
121
  locator(selectorOrLocator, options) {
139
- if ((0, _rtti.isString)(selectorOrLocator)) return new Locator(this._frame, this._selector + ' >> ' + selectorOrLocator, options);
140
- if (selectorOrLocator._frame !== this._frame) throw new Error(`Locators must belong to the same frame.`);
141
- return new Locator(this._frame, this._selector + ' >> internal:chain=' + JSON.stringify(selectorOrLocator._selector), options);
122
+ if ((0, import_rtti.isString)(selectorOrLocator))
123
+ return new Locator(this._frame, this._selector + " >> " + selectorOrLocator, options);
124
+ if (selectorOrLocator._frame !== this._frame)
125
+ throw new Error(`Locators must belong to the same frame.`);
126
+ return new Locator(this._frame, this._selector + " >> internal:chain=" + JSON.stringify(selectorOrLocator._selector), options);
142
127
  }
143
128
  getByTestId(testId) {
144
- return this.locator((0, _locatorUtils.getByTestIdSelector)(testIdAttributeName(), testId));
129
+ return this.locator((0, import_locatorUtils.getByTestIdSelector)(testIdAttributeName(), testId));
145
130
  }
146
131
  getByAltText(text, options) {
147
- return this.locator((0, _locatorUtils.getByAltTextSelector)(text, options));
132
+ return this.locator((0, import_locatorUtils.getByAltTextSelector)(text, options));
148
133
  }
149
134
  getByLabel(text, options) {
150
- return this.locator((0, _locatorUtils.getByLabelSelector)(text, options));
135
+ return this.locator((0, import_locatorUtils.getByLabelSelector)(text, options));
151
136
  }
152
137
  getByPlaceholder(text, options) {
153
- return this.locator((0, _locatorUtils.getByPlaceholderSelector)(text, options));
138
+ return this.locator((0, import_locatorUtils.getByPlaceholderSelector)(text, options));
154
139
  }
155
140
  getByText(text, options) {
156
- return this.locator((0, _locatorUtils.getByTextSelector)(text, options));
141
+ return this.locator((0, import_locatorUtils.getByTextSelector)(text, options));
157
142
  }
158
143
  getByTitle(text, options) {
159
- return this.locator((0, _locatorUtils.getByTitleSelector)(text, options));
144
+ return this.locator((0, import_locatorUtils.getByTitleSelector)(text, options));
160
145
  }
161
146
  getByRole(role, options = {}) {
162
- return this.locator((0, _locatorUtils.getByRoleSelector)(role, options));
147
+ return this.locator((0, import_locatorUtils.getByRoleSelector)(role, options));
163
148
  }
164
149
  frameLocator(selector) {
165
- return new FrameLocator(this._frame, this._selector + ' >> ' + selector);
150
+ return new FrameLocator(this._frame, this._selector + " >> " + selector);
166
151
  }
167
152
  filter(options) {
168
153
  return new Locator(this._frame, this._selector, options);
169
154
  }
170
155
  async elementHandle(options) {
171
- return await this._frame.waitForSelector(this._selector, {
172
- strict: true,
173
- state: 'attached',
174
- ...options
175
- });
156
+ return await this._frame.waitForSelector(this._selector, { strict: true, state: "attached", ...options });
176
157
  }
177
158
  async elementHandles() {
178
159
  return await this._frame.$$(this._selector);
@@ -180,8 +161,11 @@ class Locator {
180
161
  contentFrame() {
181
162
  return new FrameLocator(this._frame, this._selector);
182
163
  }
164
+ describe(description) {
165
+ return new Locator(this._frame, this._selector + " >> internal:describe=" + JSON.stringify(description));
166
+ }
183
167
  first() {
184
- return new Locator(this._frame, this._selector + ' >> nth=0');
168
+ return new Locator(this._frame, this._selector + " >> nth=0");
185
169
  }
186
170
  last() {
187
171
  return new Locator(this._frame, this._selector + ` >> nth=-1`);
@@ -190,253 +174,171 @@ class Locator {
190
174
  return new Locator(this._frame, this._selector + ` >> nth=${index}`);
191
175
  }
192
176
  and(locator) {
193
- if (locator._frame !== this._frame) throw new Error(`Locators must belong to the same frame.`);
177
+ if (locator._frame !== this._frame)
178
+ throw new Error(`Locators must belong to the same frame.`);
194
179
  return new Locator(this._frame, this._selector + ` >> internal:and=` + JSON.stringify(locator._selector));
195
180
  }
196
181
  or(locator) {
197
- if (locator._frame !== this._frame) throw new Error(`Locators must belong to the same frame.`);
182
+ if (locator._frame !== this._frame)
183
+ throw new Error(`Locators must belong to the same frame.`);
198
184
  return new Locator(this._frame, this._selector + ` >> internal:or=` + JSON.stringify(locator._selector));
199
185
  }
200
186
  async focus(options) {
201
- return await this._frame.focus(this._selector, {
202
- strict: true,
203
- ...options
204
- });
187
+ return await this._frame.focus(this._selector, { strict: true, ...options });
205
188
  }
206
189
  async blur(options) {
207
- await this._frame._channel.blur({
208
- selector: this._selector,
209
- strict: true,
210
- ...options
211
- });
190
+ await this._frame._channel.blur({ selector: this._selector, strict: true, ...options, timeout: this._frame._timeout(options) });
212
191
  }
213
192
  async count() {
214
193
  return await this._frame._queryCount(this._selector);
215
194
  }
216
195
  async _generateLocatorString() {
217
- return await this._withElement(h => h._generateLocatorString());
196
+ const { value } = await this._frame._channel.generateLocatorString({ selector: this._selector });
197
+ return value === void 0 ? null : value;
218
198
  }
219
199
  async getAttribute(name, options) {
220
- return await this._frame.getAttribute(this._selector, name, {
221
- strict: true,
222
- ...options
223
- });
200
+ return await this._frame.getAttribute(this._selector, name, { strict: true, ...options });
224
201
  }
225
202
  async hover(options = {}) {
226
- return await this._frame.hover(this._selector, {
227
- strict: true,
228
- ...options
229
- });
203
+ return await this._frame.hover(this._selector, { strict: true, ...options });
230
204
  }
231
205
  async innerHTML(options) {
232
- return await this._frame.innerHTML(this._selector, {
233
- strict: true,
234
- ...options
235
- });
206
+ return await this._frame.innerHTML(this._selector, { strict: true, ...options });
236
207
  }
237
208
  async innerText(options) {
238
- return await this._frame.innerText(this._selector, {
239
- strict: true,
240
- ...options
241
- });
209
+ return await this._frame.innerText(this._selector, { strict: true, ...options });
242
210
  }
243
211
  async inputValue(options) {
244
- return await this._frame.inputValue(this._selector, {
245
- strict: true,
246
- ...options
247
- });
212
+ return await this._frame.inputValue(this._selector, { strict: true, ...options });
248
213
  }
249
214
  async isChecked(options) {
250
- return await this._frame.isChecked(this._selector, {
251
- strict: true,
252
- ...options
253
- });
215
+ return await this._frame.isChecked(this._selector, { strict: true, ...options });
254
216
  }
255
217
  async isDisabled(options) {
256
- return await this._frame.isDisabled(this._selector, {
257
- strict: true,
258
- ...options
259
- });
218
+ return await this._frame.isDisabled(this._selector, { strict: true, ...options });
260
219
  }
261
220
  async isEditable(options) {
262
- return await this._frame.isEditable(this._selector, {
263
- strict: true,
264
- ...options
265
- });
221
+ return await this._frame.isEditable(this._selector, { strict: true, ...options });
266
222
  }
267
223
  async isEnabled(options) {
268
- return await this._frame.isEnabled(this._selector, {
269
- strict: true,
270
- ...options
271
- });
224
+ return await this._frame.isEnabled(this._selector, { strict: true, ...options });
272
225
  }
273
226
  async isHidden(options) {
274
- return await this._frame.isHidden(this._selector, {
275
- strict: true,
276
- ...options
277
- });
227
+ return await this._frame.isHidden(this._selector, { strict: true, ...options });
278
228
  }
279
229
  async isVisible(options) {
280
- return await this._frame.isVisible(this._selector, {
281
- strict: true,
282
- ...options
283
- });
230
+ return await this._frame.isVisible(this._selector, { strict: true, ...options });
284
231
  }
285
232
  async press(key, options = {}) {
286
- return await this._frame.press(this._selector, key, {
287
- strict: true,
288
- ...options
289
- });
233
+ return await this._frame.press(this._selector, key, { strict: true, ...options });
290
234
  }
291
235
  async screenshot(options = {}) {
292
236
  const mask = options.mask;
293
- return await this._withElement((h, timeout) => h.screenshot({
294
- ...options,
295
- mask,
296
- timeout
297
- }), options.timeout);
237
+ return await this._withElement((h, timeout) => h.screenshot({ ...options, mask, timeout }), { title: "Screenshot", timeout: options.timeout });
298
238
  }
299
239
  async ariaSnapshot(options) {
300
- const result = await this._frame._channel.ariaSnapshot({
301
- ...options,
302
- id: options === null || options === void 0 ? void 0 : options._id,
303
- mode: options === null || options === void 0 ? void 0 : options._mode,
304
- selector: this._selector
305
- });
240
+ const result = await this._frame._channel.ariaSnapshot({ ...options, selector: this._selector, timeout: this._frame._timeout(options) });
306
241
  return result.snapshot;
307
242
  }
308
243
  async scrollIntoViewIfNeeded(options = {}) {
309
- return await this._withElement((h, timeout) => h.scrollIntoViewIfNeeded({
310
- ...options,
311
- timeout
312
- }), options.timeout);
244
+ return await this._withElement((h, timeout) => h.scrollIntoViewIfNeeded({ ...options, timeout }), { title: "Scroll into view", timeout: options.timeout });
313
245
  }
314
246
  async selectOption(values, options = {}) {
315
- return await this._frame.selectOption(this._selector, values, {
316
- strict: true,
317
- ...options
318
- });
247
+ return await this._frame.selectOption(this._selector, values, { strict: true, ...options });
319
248
  }
320
249
  async selectText(options = {}) {
321
- return await this._withElement((h, timeout) => h.selectText({
322
- ...options,
323
- timeout
324
- }), options.timeout);
250
+ return await this._withElement((h, timeout) => h.selectText({ ...options, timeout }), { title: "Select text", timeout: options.timeout });
325
251
  }
326
252
  async setChecked(checked, options) {
327
- if (checked) await this.check(options);else await this.uncheck(options);
253
+ if (checked)
254
+ await this.check(options);
255
+ else
256
+ await this.uncheck(options);
328
257
  }
329
258
  async setInputFiles(files, options = {}) {
330
- return await this._frame.setInputFiles(this._selector, files, {
331
- strict: true,
332
- ...options
333
- });
259
+ return await this._frame.setInputFiles(this._selector, files, { strict: true, ...options });
334
260
  }
335
261
  async tap(options = {}) {
336
- return await this._frame.tap(this._selector, {
337
- strict: true,
338
- ...options
339
- });
262
+ return await this._frame.tap(this._selector, { strict: true, ...options });
340
263
  }
341
264
  async textContent(options) {
342
- return await this._frame.textContent(this._selector, {
343
- strict: true,
344
- ...options
345
- });
265
+ return await this._frame.textContent(this._selector, { strict: true, ...options });
346
266
  }
347
267
  async type(text, options = {}) {
348
- return await this._frame.type(this._selector, text, {
349
- strict: true,
350
- ...options
351
- });
268
+ return await this._frame.type(this._selector, text, { strict: true, ...options });
352
269
  }
353
270
  async pressSequentially(text, options = {}) {
354
271
  return await this.type(text, options);
355
272
  }
356
273
  async uncheck(options = {}) {
357
- return await this._frame.uncheck(this._selector, {
358
- strict: true,
359
- ...options
360
- });
274
+ return await this._frame.uncheck(this._selector, { strict: true, ...options });
361
275
  }
362
276
  async all() {
363
277
  return new Array(await this.count()).fill(0).map((e, i) => this.nth(i));
364
278
  }
365
279
  async allInnerTexts() {
366
- return await this._frame.$$eval(this._selector, ee => ee.map(e => e.innerText));
280
+ return await this._frame.$$eval(this._selector, (ee) => ee.map((e) => e.innerText));
367
281
  }
368
282
  async allTextContents() {
369
- return await this._frame.$$eval(this._selector, ee => ee.map(e => e.textContent || ''));
283
+ return await this._frame.$$eval(this._selector, (ee) => ee.map((e) => e.textContent || ""));
370
284
  }
371
285
  async waitFor(options) {
372
- await this._frame._channel.waitForSelector({
373
- selector: this._selector,
374
- strict: true,
375
- omitReturnValue: true,
376
- ...options
377
- });
286
+ await this._frame._channel.waitForSelector({ selector: this._selector, strict: true, omitReturnValue: true, ...options, timeout: this._frame._timeout(options) });
378
287
  }
379
288
  async _expect(expression, options) {
380
- const params = {
381
- selector: this._selector,
382
- expression,
289
+ return this._frame._expect(expression, {
383
290
  ...options,
384
- isNot: !!options.isNot
385
- };
386
- params.expectedValue = (0, _jsHandle.serializeArgument)(options.expectedValue);
387
- const result = await this._frame._channel.expect(params);
388
- if (result.received !== undefined) result.received = (0, _jsHandle.parseResult)(result.received);
389
- return result;
291
+ selector: this._selector
292
+ });
390
293
  }
391
294
  _inspect() {
392
295
  return this.toString();
393
296
  }
394
297
  toString() {
395
- return (0, _locatorGenerators.asLocator)('javascript', this._selector);
298
+ return (0, import_locatorGenerators.asLocator)("javascript", this._selector);
396
299
  }
397
300
  }
398
- exports.Locator = Locator;
399
301
  class FrameLocator {
400
302
  constructor(frame, selector) {
401
- this._frame = void 0;
402
- this._frameSelector = void 0;
403
303
  this._frame = frame;
404
304
  this._frameSelector = selector;
405
305
  }
406
306
  locator(selectorOrLocator, options) {
407
- if ((0, _rtti.isString)(selectorOrLocator)) return new Locator(this._frame, this._frameSelector + ' >> internal:control=enter-frame >> ' + selectorOrLocator, options);
408
- if (selectorOrLocator._frame !== this._frame) throw new Error(`Locators must belong to the same frame.`);
409
- return new Locator(this._frame, this._frameSelector + ' >> internal:control=enter-frame >> ' + selectorOrLocator._selector, options);
307
+ if ((0, import_rtti.isString)(selectorOrLocator))
308
+ return new Locator(this._frame, this._frameSelector + " >> internal:control=enter-frame >> " + selectorOrLocator, options);
309
+ if (selectorOrLocator._frame !== this._frame)
310
+ throw new Error(`Locators must belong to the same frame.`);
311
+ return new Locator(this._frame, this._frameSelector + " >> internal:control=enter-frame >> " + selectorOrLocator._selector, options);
410
312
  }
411
313
  getByTestId(testId) {
412
- return this.locator((0, _locatorUtils.getByTestIdSelector)(testIdAttributeName(), testId));
314
+ return this.locator((0, import_locatorUtils.getByTestIdSelector)(testIdAttributeName(), testId));
413
315
  }
414
316
  getByAltText(text, options) {
415
- return this.locator((0, _locatorUtils.getByAltTextSelector)(text, options));
317
+ return this.locator((0, import_locatorUtils.getByAltTextSelector)(text, options));
416
318
  }
417
319
  getByLabel(text, options) {
418
- return this.locator((0, _locatorUtils.getByLabelSelector)(text, options));
320
+ return this.locator((0, import_locatorUtils.getByLabelSelector)(text, options));
419
321
  }
420
322
  getByPlaceholder(text, options) {
421
- return this.locator((0, _locatorUtils.getByPlaceholderSelector)(text, options));
323
+ return this.locator((0, import_locatorUtils.getByPlaceholderSelector)(text, options));
422
324
  }
423
325
  getByText(text, options) {
424
- return this.locator((0, _locatorUtils.getByTextSelector)(text, options));
326
+ return this.locator((0, import_locatorUtils.getByTextSelector)(text, options));
425
327
  }
426
328
  getByTitle(text, options) {
427
- return this.locator((0, _locatorUtils.getByTitleSelector)(text, options));
329
+ return this.locator((0, import_locatorUtils.getByTitleSelector)(text, options));
428
330
  }
429
331
  getByRole(role, options = {}) {
430
- return this.locator((0, _locatorUtils.getByRoleSelector)(role, options));
332
+ return this.locator((0, import_locatorUtils.getByRoleSelector)(role, options));
431
333
  }
432
334
  owner() {
433
335
  return new Locator(this._frame, this._frameSelector);
434
336
  }
435
337
  frameLocator(selector) {
436
- return new FrameLocator(this._frame, this._frameSelector + ' >> internal:control=enter-frame >> ' + selector);
338
+ return new FrameLocator(this._frame, this._frameSelector + " >> internal:control=enter-frame >> " + selector);
437
339
  }
438
340
  first() {
439
- return new FrameLocator(this._frame, this._frameSelector + ' >> nth=0');
341
+ return new FrameLocator(this._frame, this._frameSelector + " >> nth=0");
440
342
  }
441
343
  last() {
442
344
  return new FrameLocator(this._frame, this._frameSelector + ` >> nth=-1`);
@@ -445,11 +347,17 @@ class FrameLocator {
445
347
  return new FrameLocator(this._frame, this._frameSelector + ` >> nth=${index}`);
446
348
  }
447
349
  }
448
- exports.FrameLocator = FrameLocator;
449
- let _testIdAttributeName = 'data-testid';
350
+ let _testIdAttributeName = "data-testid";
450
351
  function testIdAttributeName() {
451
352
  return _testIdAttributeName;
452
353
  }
453
354
  function setTestIdAttribute(attributeName) {
454
355
  _testIdAttributeName = attributeName;
455
- }
356
+ }
357
+ // Annotate the CommonJS export names for ESM import in node:
358
+ 0 && (module.exports = {
359
+ FrameLocator,
360
+ Locator,
361
+ setTestIdAttribute,
362
+ testIdAttributeName
363
+ });