@stablyai/internal-playwright-core 0.1.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.
- package/LICENSE +202 -0
- package/NOTICE +5 -0
- package/README.md +3 -0
- package/ThirdPartyNotices.txt +1134 -0
- package/bin/install_media_pack.ps1 +5 -0
- package/bin/install_webkit_wsl.ps1 +35 -0
- package/bin/reinstall_chrome_beta_linux.sh +42 -0
- package/bin/reinstall_chrome_beta_mac.sh +13 -0
- package/bin/reinstall_chrome_beta_win.ps1 +24 -0
- package/bin/reinstall_chrome_stable_linux.sh +42 -0
- package/bin/reinstall_chrome_stable_mac.sh +12 -0
- package/bin/reinstall_chrome_stable_win.ps1 +24 -0
- package/bin/reinstall_msedge_beta_linux.sh +48 -0
- package/bin/reinstall_msedge_beta_mac.sh +11 -0
- package/bin/reinstall_msedge_beta_win.ps1 +23 -0
- package/bin/reinstall_msedge_dev_linux.sh +48 -0
- package/bin/reinstall_msedge_dev_mac.sh +11 -0
- package/bin/reinstall_msedge_dev_win.ps1 +23 -0
- package/bin/reinstall_msedge_stable_linux.sh +48 -0
- package/bin/reinstall_msedge_stable_mac.sh +11 -0
- package/bin/reinstall_msedge_stable_win.ps1 +24 -0
- package/browsers.json +80 -0
- package/cli.js +18 -0
- package/index.d.ts +17 -0
- package/index.js +32 -0
- package/index.mjs +28 -0
- package/lib/androidServerImpl.js +65 -0
- package/lib/browserServerImpl.js +120 -0
- package/lib/cli/cli.js +58 -0
- package/lib/cli/driver.js +97 -0
- package/lib/cli/program.js +634 -0
- package/lib/cli/programWithTestStub.js +74 -0
- package/lib/client/accessibility.js +49 -0
- package/lib/client/android.js +361 -0
- package/lib/client/api.js +137 -0
- package/lib/client/artifact.js +79 -0
- package/lib/client/browser.js +163 -0
- package/lib/client/browserContext.js +529 -0
- package/lib/client/browserType.js +184 -0
- package/lib/client/cdpSession.js +51 -0
- package/lib/client/channelOwner.js +194 -0
- package/lib/client/clientHelper.js +64 -0
- package/lib/client/clientInstrumentation.js +55 -0
- package/lib/client/clientStackTrace.js +69 -0
- package/lib/client/clock.js +68 -0
- package/lib/client/connection.js +314 -0
- package/lib/client/consoleMessage.js +54 -0
- package/lib/client/coverage.js +44 -0
- package/lib/client/dialog.js +56 -0
- package/lib/client/download.js +62 -0
- package/lib/client/electron.js +138 -0
- package/lib/client/elementHandle.js +281 -0
- package/lib/client/errors.js +77 -0
- package/lib/client/eventEmitter.js +314 -0
- package/lib/client/events.js +99 -0
- package/lib/client/fetch.js +369 -0
- package/lib/client/fileChooser.js +46 -0
- package/lib/client/fileUtils.js +34 -0
- package/lib/client/frame.js +408 -0
- package/lib/client/harRouter.js +87 -0
- package/lib/client/input.js +84 -0
- package/lib/client/jsHandle.js +109 -0
- package/lib/client/jsonPipe.js +39 -0
- package/lib/client/localUtils.js +60 -0
- package/lib/client/locator.js +368 -0
- package/lib/client/network.js +747 -0
- package/lib/client/page.js +721 -0
- package/lib/client/platform.js +74 -0
- package/lib/client/playwright.js +71 -0
- package/lib/client/selectors.js +55 -0
- package/lib/client/stream.js +39 -0
- package/lib/client/timeoutSettings.js +79 -0
- package/lib/client/tracing.js +117 -0
- package/lib/client/types.js +28 -0
- package/lib/client/video.js +59 -0
- package/lib/client/waiter.js +142 -0
- package/lib/client/webError.js +39 -0
- package/lib/client/webSocket.js +93 -0
- package/lib/client/worker.js +63 -0
- package/lib/client/writableStream.js +39 -0
- package/lib/common/debugLogger.js +90 -0
- package/lib/common/socksProxy.js +569 -0
- package/lib/common/timeoutSettings.js +73 -0
- package/lib/common/types.js +5 -0
- package/lib/generated/bindingsControllerSource.js +28 -0
- package/lib/generated/clockSource.js +28 -0
- package/lib/generated/consoleApiSource.js +28 -0
- package/lib/generated/injectedScriptSource.js +28 -0
- package/lib/generated/pollingRecorderSource.js +28 -0
- package/lib/generated/recorderSource.js +28 -0
- package/lib/generated/storageScriptSource.js +28 -0
- package/lib/generated/utilityScriptSource.js +28 -0
- package/lib/generated/webSocketMockSource.js +336 -0
- package/lib/image_tools/colorUtils.js +98 -0
- package/lib/image_tools/compare.js +108 -0
- package/lib/image_tools/imageChannel.js +70 -0
- package/lib/image_tools/stats.js +102 -0
- package/lib/inProcessFactory.js +60 -0
- package/lib/index.js +19 -0
- package/lib/inprocess.js +3 -0
- package/lib/outofprocess.js +76 -0
- package/lib/protocol/debug.js +27 -0
- package/lib/protocol/serializers.js +192 -0
- package/lib/protocol/transport.js +82 -0
- package/lib/protocol/validator.js +2919 -0
- package/lib/protocol/validatorPrimitives.js +193 -0
- package/lib/remote/playwrightConnection.js +129 -0
- package/lib/remote/playwrightServer.js +335 -0
- package/lib/server/accessibility.js +69 -0
- package/lib/server/android/android.js +465 -0
- package/lib/server/android/backendAdb.js +177 -0
- package/lib/server/artifact.js +127 -0
- package/lib/server/bidi/bidiBrowser.js +490 -0
- package/lib/server/bidi/bidiChromium.js +153 -0
- package/lib/server/bidi/bidiConnection.js +212 -0
- package/lib/server/bidi/bidiExecutionContext.js +221 -0
- package/lib/server/bidi/bidiFirefox.js +130 -0
- package/lib/server/bidi/bidiInput.js +146 -0
- package/lib/server/bidi/bidiNetworkManager.js +383 -0
- package/lib/server/bidi/bidiOverCdp.js +102 -0
- package/lib/server/bidi/bidiPage.js +552 -0
- package/lib/server/bidi/bidiPdf.js +106 -0
- package/lib/server/bidi/third_party/bidiCommands.d.js +22 -0
- package/lib/server/bidi/third_party/bidiDeserializer.js +98 -0
- package/lib/server/bidi/third_party/bidiKeyboard.js +256 -0
- package/lib/server/bidi/third_party/bidiProtocol.js +24 -0
- package/lib/server/bidi/third_party/bidiProtocolCore.js +179 -0
- package/lib/server/bidi/third_party/bidiProtocolPermissions.js +42 -0
- package/lib/server/bidi/third_party/bidiSerializer.js +148 -0
- package/lib/server/bidi/third_party/firefoxPrefs.js +259 -0
- package/lib/server/browser.js +149 -0
- package/lib/server/browserContext.js +695 -0
- package/lib/server/browserType.js +328 -0
- package/lib/server/callLog.js +82 -0
- package/lib/server/chromium/appIcon.png +0 -0
- package/lib/server/chromium/chromium.js +402 -0
- package/lib/server/chromium/chromiumSwitches.js +95 -0
- package/lib/server/chromium/crAccessibility.js +263 -0
- package/lib/server/chromium/crBrowser.js +501 -0
- package/lib/server/chromium/crConnection.js +202 -0
- package/lib/server/chromium/crCoverage.js +235 -0
- package/lib/server/chromium/crDevTools.js +113 -0
- package/lib/server/chromium/crDragDrop.js +131 -0
- package/lib/server/chromium/crExecutionContext.js +146 -0
- package/lib/server/chromium/crInput.js +187 -0
- package/lib/server/chromium/crNetworkManager.js +666 -0
- package/lib/server/chromium/crPage.js +1069 -0
- package/lib/server/chromium/crPdf.js +121 -0
- package/lib/server/chromium/crProtocolHelper.js +145 -0
- package/lib/server/chromium/crServiceWorker.js +123 -0
- package/lib/server/chromium/defaultFontFamilies.js +162 -0
- package/lib/server/chromium/protocol.d.js +16 -0
- package/lib/server/chromium/videoRecorder.js +113 -0
- package/lib/server/clock.js +149 -0
- package/lib/server/codegen/csharp.js +327 -0
- package/lib/server/codegen/java.js +274 -0
- package/lib/server/codegen/javascript.js +270 -0
- package/lib/server/codegen/jsonl.js +52 -0
- package/lib/server/codegen/language.js +132 -0
- package/lib/server/codegen/languages.js +68 -0
- package/lib/server/codegen/python.js +279 -0
- package/lib/server/codegen/types.js +16 -0
- package/lib/server/console.js +53 -0
- package/lib/server/cookieStore.js +206 -0
- package/lib/server/debugController.js +191 -0
- package/lib/server/debugger.js +119 -0
- package/lib/server/deviceDescriptors.js +39 -0
- package/lib/server/deviceDescriptorsSource.json +1779 -0
- package/lib/server/dialog.js +116 -0
- package/lib/server/dispatchers/androidDispatcher.js +325 -0
- package/lib/server/dispatchers/artifactDispatcher.js +118 -0
- package/lib/server/dispatchers/browserContextDispatcher.js +364 -0
- package/lib/server/dispatchers/browserDispatcher.js +118 -0
- package/lib/server/dispatchers/browserTypeDispatcher.js +64 -0
- package/lib/server/dispatchers/cdpSessionDispatcher.js +44 -0
- package/lib/server/dispatchers/debugControllerDispatcher.js +78 -0
- package/lib/server/dispatchers/dialogDispatcher.js +47 -0
- package/lib/server/dispatchers/dispatcher.js +371 -0
- package/lib/server/dispatchers/electronDispatcher.js +89 -0
- package/lib/server/dispatchers/elementHandlerDispatcher.js +181 -0
- package/lib/server/dispatchers/frameDispatcher.js +227 -0
- package/lib/server/dispatchers/jsHandleDispatcher.js +85 -0
- package/lib/server/dispatchers/jsonPipeDispatcher.js +58 -0
- package/lib/server/dispatchers/localUtilsDispatcher.js +149 -0
- package/lib/server/dispatchers/networkDispatchers.js +213 -0
- package/lib/server/dispatchers/pageDispatcher.js +401 -0
- package/lib/server/dispatchers/playwrightDispatcher.js +108 -0
- package/lib/server/dispatchers/selectorsDispatcher.js +36 -0
- package/lib/server/dispatchers/streamDispatcher.js +67 -0
- package/lib/server/dispatchers/tracingDispatcher.js +68 -0
- package/lib/server/dispatchers/webSocketRouteDispatcher.js +165 -0
- package/lib/server/dispatchers/writableStreamDispatcher.js +79 -0
- package/lib/server/dom.js +806 -0
- package/lib/server/download.js +70 -0
- package/lib/server/electron/electron.js +270 -0
- package/lib/server/electron/loader.js +29 -0
- package/lib/server/errors.js +69 -0
- package/lib/server/fetch.js +621 -0
- package/lib/server/fileChooser.js +43 -0
- package/lib/server/fileUploadUtils.js +84 -0
- package/lib/server/firefox/ffAccessibility.js +238 -0
- package/lib/server/firefox/ffBrowser.js +428 -0
- package/lib/server/firefox/ffConnection.js +147 -0
- package/lib/server/firefox/ffExecutionContext.js +150 -0
- package/lib/server/firefox/ffInput.js +159 -0
- package/lib/server/firefox/ffNetworkManager.js +256 -0
- package/lib/server/firefox/ffPage.js +503 -0
- package/lib/server/firefox/firefox.js +116 -0
- package/lib/server/firefox/protocol.d.js +16 -0
- package/lib/server/formData.js +147 -0
- package/lib/server/frameSelectors.js +156 -0
- package/lib/server/frames.js +1502 -0
- package/lib/server/har/harRecorder.js +147 -0
- package/lib/server/har/harTracer.js +607 -0
- package/lib/server/harBackend.js +157 -0
- package/lib/server/helper.js +96 -0
- package/lib/server/index.js +58 -0
- package/lib/server/input.js +273 -0
- package/lib/server/instrumentation.js +69 -0
- package/lib/server/isomorphic/utilityScriptSerializers.js +212 -0
- package/lib/server/javascript.js +291 -0
- package/lib/server/launchApp.js +128 -0
- package/lib/server/localUtils.js +218 -0
- package/lib/server/macEditingCommands.js +143 -0
- package/lib/server/network.js +629 -0
- package/lib/server/page.js +871 -0
- package/lib/server/pipeTransport.js +89 -0
- package/lib/server/playwright.js +69 -0
- package/lib/server/progress.js +112 -0
- package/lib/server/protocolError.js +52 -0
- package/lib/server/recorder/chat.js +161 -0
- package/lib/server/recorder/codeGenerator.js +153 -0
- package/lib/server/recorder/csharp.js +310 -0
- package/lib/server/recorder/java.js +248 -0
- package/lib/server/recorder/javascript.js +229 -0
- package/lib/server/recorder/jsonl.js +47 -0
- package/lib/server/recorder/language.js +44 -0
- package/lib/server/recorder/python.js +276 -0
- package/lib/server/recorder/recorderActions.js +5 -0
- package/lib/server/recorder/recorderApp.js +387 -0
- package/lib/server/recorder/recorderRunner.js +138 -0
- package/lib/server/recorder/recorderSignalProcessor.js +83 -0
- package/lib/server/recorder/recorderUtils.js +157 -0
- package/lib/server/recorder/throttledFile.js +57 -0
- package/lib/server/recorder/utils.js +45 -0
- package/lib/server/recorder.js +499 -0
- package/lib/server/registry/browserFetcher.js +175 -0
- package/lib/server/registry/dependencies.js +371 -0
- package/lib/server/registry/index.js +1331 -0
- package/lib/server/registry/nativeDeps.js +1280 -0
- package/lib/server/registry/oopDownloadBrowserMain.js +120 -0
- package/lib/server/screenshotter.js +333 -0
- package/lib/server/selectors.js +112 -0
- package/lib/server/socksClientCertificatesInterceptor.js +383 -0
- package/lib/server/socksInterceptor.js +95 -0
- package/lib/server/stably/ai-tools/http-request.js +70 -0
- package/lib/server/stably/ai-tools/stablyApiCaller.js +137 -0
- package/lib/server/stably/autohealing/elementHandleFromCoordinates.js +64 -0
- package/lib/server/stably/autohealing/healingService.js +228 -0
- package/lib/server/stably/autohealing/screenshotFrame.js +41 -0
- package/lib/server/stably/constants.js +31 -0
- package/lib/server/trace/recorder/snapshotter.js +147 -0
- package/lib/server/trace/recorder/snapshotterInjected.js +541 -0
- package/lib/server/trace/recorder/tracing.js +602 -0
- package/lib/server/trace/test/inMemorySnapshotter.js +87 -0
- package/lib/server/trace/viewer/traceViewer.js +240 -0
- package/lib/server/transport.js +181 -0
- package/lib/server/types.js +28 -0
- package/lib/server/usKeyboardLayout.js +145 -0
- package/lib/server/utils/ascii.js +44 -0
- package/lib/server/utils/comparators.js +161 -0
- package/lib/server/utils/crypto.js +216 -0
- package/lib/server/utils/debug.js +42 -0
- package/lib/server/utils/debugLogger.js +122 -0
- package/lib/server/utils/env.js +73 -0
- package/lib/server/utils/eventsHelper.js +39 -0
- package/lib/server/utils/expectUtils.js +38 -0
- package/lib/server/utils/fileUtils.js +191 -0
- package/lib/server/utils/happyEyeballs.js +207 -0
- package/lib/server/utils/hostPlatform.js +111 -0
- package/lib/server/utils/httpServer.js +218 -0
- package/lib/server/utils/image_tools/colorUtils.js +89 -0
- package/lib/server/utils/image_tools/compare.js +109 -0
- package/lib/server/utils/image_tools/imageChannel.js +78 -0
- package/lib/server/utils/image_tools/stats.js +102 -0
- package/lib/server/utils/linuxUtils.js +71 -0
- package/lib/server/utils/network.js +233 -0
- package/lib/server/utils/nodePlatform.js +148 -0
- package/lib/server/utils/pipeTransport.js +84 -0
- package/lib/server/utils/processLauncher.js +241 -0
- package/lib/server/utils/profiler.js +65 -0
- package/lib/server/utils/socksProxy.js +511 -0
- package/lib/server/utils/spawnAsync.js +41 -0
- package/lib/server/utils/task.js +51 -0
- package/lib/server/utils/userAgent.js +98 -0
- package/lib/server/utils/wsServer.js +121 -0
- package/lib/server/utils/zipFile.js +74 -0
- package/lib/server/utils/zones.js +57 -0
- package/lib/server/webkit/protocol.d.js +16 -0
- package/lib/server/webkit/webkit.js +119 -0
- package/lib/server/webkit/wkAccessibility.js +237 -0
- package/lib/server/webkit/wkBrowser.js +339 -0
- package/lib/server/webkit/wkConnection.js +149 -0
- package/lib/server/webkit/wkExecutionContext.js +154 -0
- package/lib/server/webkit/wkInput.js +181 -0
- package/lib/server/webkit/wkInterceptableRequest.js +169 -0
- package/lib/server/webkit/wkPage.js +1134 -0
- package/lib/server/webkit/wkProvisionalPage.js +83 -0
- package/lib/server/webkit/wkWorkers.js +104 -0
- package/lib/server/webkit/wsl/webkit-wsl-transport-client.js +74 -0
- package/lib/server/webkit/wsl/webkit-wsl-transport-server.js +113 -0
- package/lib/third_party/diff_match_patch.js +2222 -0
- package/lib/third_party/pixelmatch.js +255 -0
- package/lib/utils/ascii.js +31 -0
- package/lib/utils/comparators.js +171 -0
- package/lib/utils/crypto.js +33 -0
- package/lib/utils/debug.js +46 -0
- package/lib/utils/debugLogger.js +89 -0
- package/lib/utils/env.js +49 -0
- package/lib/utils/eventsHelper.js +38 -0
- package/lib/utils/fileUtils.js +205 -0
- package/lib/utils/glob.js +83 -0
- package/lib/utils/happy-eyeballs.js +160 -0
- package/lib/utils/headers.js +52 -0
- package/lib/utils/hostPlatform.js +128 -0
- package/lib/utils/httpServer.js +236 -0
- package/lib/utils/index.js +346 -0
- package/lib/utils/isomorphic/ariaSnapshot.js +392 -0
- package/lib/utils/isomorphic/assert.js +31 -0
- package/lib/utils/isomorphic/colors.js +72 -0
- package/lib/utils/isomorphic/cssParser.js +245 -0
- package/lib/utils/isomorphic/cssTokenizer.js +1051 -0
- package/lib/utils/isomorphic/headers.js +53 -0
- package/lib/utils/isomorphic/locatorGenerators.js +673 -0
- package/lib/utils/isomorphic/locatorParser.js +176 -0
- package/lib/utils/isomorphic/locatorUtils.js +81 -0
- package/lib/utils/isomorphic/manualPromise.js +114 -0
- package/lib/utils/isomorphic/mimeType.js +459 -0
- package/lib/utils/isomorphic/multimap.js +80 -0
- package/lib/utils/isomorphic/protocolFormatter.js +78 -0
- package/lib/utils/isomorphic/protocolMetainfo.js +321 -0
- package/lib/utils/isomorphic/rtti.js +43 -0
- package/lib/utils/isomorphic/selectorParser.js +386 -0
- package/lib/utils/isomorphic/semaphore.js +54 -0
- package/lib/utils/isomorphic/stackTrace.js +158 -0
- package/lib/utils/isomorphic/stringUtils.js +155 -0
- package/lib/utils/isomorphic/time.js +49 -0
- package/lib/utils/isomorphic/timeoutRunner.js +66 -0
- package/lib/utils/isomorphic/traceUtils.js +58 -0
- package/lib/utils/isomorphic/types.js +16 -0
- package/lib/utils/isomorphic/urlMatch.js +176 -0
- package/lib/utils/isomorphic/utilityScriptSerializers.js +251 -0
- package/lib/utils/linuxUtils.js +78 -0
- package/lib/utils/manualPromise.js +109 -0
- package/lib/utils/mimeType.js +29 -0
- package/lib/utils/multimap.js +75 -0
- package/lib/utils/network.js +188 -0
- package/lib/utils/processLauncher.js +248 -0
- package/lib/utils/profiler.js +53 -0
- package/lib/utils/rtti.js +44 -0
- package/lib/utils/semaphore.js +51 -0
- package/lib/utils/spawnAsync.js +45 -0
- package/lib/utils/stackTrace.js +121 -0
- package/lib/utils/task.js +58 -0
- package/lib/utils/time.js +37 -0
- package/lib/utils/timeoutRunner.js +66 -0
- package/lib/utils/traceUtils.js +44 -0
- package/lib/utils/userAgent.js +105 -0
- package/lib/utils/wsServer.js +127 -0
- package/lib/utils/zipFile.js +75 -0
- package/lib/utils/zones.js +62 -0
- package/lib/utils.js +107 -0
- package/lib/utilsBundle.js +109 -0
- package/lib/utilsBundleImpl/index.js +218 -0
- package/lib/utilsBundleImpl/xdg-open +1066 -0
- package/lib/vite/htmlReport/index.html +84 -0
- package/lib/vite/recorder/assets/codeMirrorModule-C3UTv-Ge.css +1 -0
- package/lib/vite/recorder/assets/codeMirrorModule-RJCXzfmE.js +24 -0
- package/lib/vite/recorder/assets/codicon-DCmgc-ay.ttf +0 -0
- package/lib/vite/recorder/assets/index-Ri0uHF7I.css +1 -0
- package/lib/vite/recorder/assets/index-Y-X2TGJv.js +193 -0
- package/lib/vite/recorder/index.html +29 -0
- package/lib/vite/recorder/playwright-logo.svg +9 -0
- package/lib/vite/traceViewer/assets/codeMirrorModule-Bhnc5o2x.js +24 -0
- package/lib/vite/traceViewer/assets/defaultSettingsView-ClwvkA2N.js +265 -0
- package/lib/vite/traceViewer/assets/xtermModule-CsJ4vdCR.js +9 -0
- package/lib/vite/traceViewer/codeMirrorModule.C3UTv-Ge.css +1 -0
- package/lib/vite/traceViewer/codicon.DCmgc-ay.ttf +0 -0
- package/lib/vite/traceViewer/defaultSettingsView.TQ8_7ybu.css +1 -0
- package/lib/vite/traceViewer/index.DFO9NNF5.js +2 -0
- package/lib/vite/traceViewer/index.I8N9v4jT.css +1 -0
- package/lib/vite/traceViewer/index.html +43 -0
- package/lib/vite/traceViewer/playwright-logo.svg +9 -0
- package/lib/vite/traceViewer/snapshot.html +21 -0
- package/lib/vite/traceViewer/sw.bundle.js +3 -0
- package/lib/vite/traceViewer/uiMode.Btcz36p_.css +1 -0
- package/lib/vite/traceViewer/uiMode.Shu3QS-1.js +5 -0
- package/lib/vite/traceViewer/uiMode.html +17 -0
- package/lib/vite/traceViewer/xtermModule.DYP7pi_n.css +32 -0
- package/lib/zipBundle.js +34 -0
- package/lib/zipBundleImpl.js +5 -0
- package/package.json +43 -0
- package/types/protocol.d.ts +23130 -0
- package/types/structs.d.ts +45 -0
- package/types/types.d.ts +22857 -0
@@ -0,0 +1,39 @@
|
|
1
|
+
"use strict";
|
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 jsonPipe_exports = {};
|
20
|
+
__export(jsonPipe_exports, {
|
21
|
+
JsonPipe: () => JsonPipe
|
22
|
+
});
|
23
|
+
module.exports = __toCommonJS(jsonPipe_exports);
|
24
|
+
var import_channelOwner = require("./channelOwner");
|
25
|
+
class JsonPipe extends import_channelOwner.ChannelOwner {
|
26
|
+
static from(jsonPipe) {
|
27
|
+
return jsonPipe._object;
|
28
|
+
}
|
29
|
+
constructor(parent, type, guid, initializer) {
|
30
|
+
super(parent, type, guid, initializer);
|
31
|
+
}
|
32
|
+
channel() {
|
33
|
+
return this._channel;
|
34
|
+
}
|
35
|
+
}
|
36
|
+
// Annotate the CommonJS export names for ESM import in node:
|
37
|
+
0 && (module.exports = {
|
38
|
+
JsonPipe
|
39
|
+
});
|
@@ -0,0 +1,60 @@
|
|
1
|
+
"use strict";
|
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 localUtils_exports = {};
|
20
|
+
__export(localUtils_exports, {
|
21
|
+
LocalUtils: () => LocalUtils
|
22
|
+
});
|
23
|
+
module.exports = __toCommonJS(localUtils_exports);
|
24
|
+
var import_channelOwner = require("./channelOwner");
|
25
|
+
class LocalUtils extends import_channelOwner.ChannelOwner {
|
26
|
+
constructor(parent, type, guid, initializer) {
|
27
|
+
super(parent, type, guid, initializer);
|
28
|
+
this.devices = {};
|
29
|
+
for (const { name, descriptor } of initializer.deviceDescriptors)
|
30
|
+
this.devices[name] = descriptor;
|
31
|
+
}
|
32
|
+
async zip(params) {
|
33
|
+
return await this._channel.zip(params);
|
34
|
+
}
|
35
|
+
async harOpen(params) {
|
36
|
+
return await this._channel.harOpen(params);
|
37
|
+
}
|
38
|
+
async harLookup(params) {
|
39
|
+
return await this._channel.harLookup(params);
|
40
|
+
}
|
41
|
+
async harClose(params) {
|
42
|
+
return await this._channel.harClose(params);
|
43
|
+
}
|
44
|
+
async harUnzip(params) {
|
45
|
+
return await this._channel.harUnzip(params);
|
46
|
+
}
|
47
|
+
async tracingStarted(params) {
|
48
|
+
return await this._channel.tracingStarted(params);
|
49
|
+
}
|
50
|
+
async traceDiscarded(params) {
|
51
|
+
return await this._channel.traceDiscarded(params);
|
52
|
+
}
|
53
|
+
async addStackToTracingNoReply(params) {
|
54
|
+
return await this._channel.addStackToTracingNoReply(params);
|
55
|
+
}
|
56
|
+
}
|
57
|
+
// Annotate the CommonJS export names for ESM import in node:
|
58
|
+
0 && (module.exports = {
|
59
|
+
LocalUtils
|
60
|
+
});
|
@@ -0,0 +1,368 @@
|
|
1
|
+
"use strict";
|
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
|
25
|
+
});
|
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");
|
33
|
+
class Locator {
|
34
|
+
constructor(frame, selector, options) {
|
35
|
+
this._frame = frame;
|
36
|
+
this._selector = selector;
|
37
|
+
this._autoHeal = options?.autoHeal;
|
38
|
+
if (options?.hasText)
|
39
|
+
this._selector += ` >> internal:has-text=${(0, import_stringUtils.escapeForTextSelector)(options.hasText, false)}`;
|
40
|
+
if (options?.hasNotText)
|
41
|
+
this._selector += ` >> internal:has-not-text=${(0, import_stringUtils.escapeForTextSelector)(options.hasNotText, false)}`;
|
42
|
+
if (options?.has) {
|
43
|
+
const locator = options.has;
|
44
|
+
if (locator._frame !== frame)
|
45
|
+
throw new Error(`Inner "has" locator must belong to the same frame.`);
|
46
|
+
this._selector += ` >> internal:has=` + JSON.stringify(locator._selector);
|
47
|
+
}
|
48
|
+
if (options?.hasNot) {
|
49
|
+
const locator = options.hasNot;
|
50
|
+
if (locator._frame !== frame)
|
51
|
+
throw new Error(`Inner "hasNot" locator must belong to the same frame.`);
|
52
|
+
this._selector += ` >> internal:has-not=` + JSON.stringify(locator._selector);
|
53
|
+
}
|
54
|
+
if (options?.visible !== void 0)
|
55
|
+
this._selector += ` >> visible=${options.visible ? "true" : "false"}`;
|
56
|
+
if (this._frame._platform.inspectCustom)
|
57
|
+
this[this._frame._platform.inspectCustom] = () => this._inspect();
|
58
|
+
}
|
59
|
+
async _withElement(task, options) {
|
60
|
+
const timeout = this._frame._timeout({ timeout: options.timeout });
|
61
|
+
const deadline = timeout ? (0, import_time.monotonicTime)() + timeout : 0;
|
62
|
+
return await this._frame._wrapApiCall(async () => {
|
63
|
+
const result = await this._frame._channel.waitForSelector({ selector: this._selector, strict: true, state: "attached", timeout });
|
64
|
+
const handle = import_elementHandle.ElementHandle.fromNullable(result.element);
|
65
|
+
if (!handle)
|
66
|
+
throw new Error(`Could not resolve ${this._selector} to DOM Element`);
|
67
|
+
try {
|
68
|
+
return await task(handle, deadline ? deadline - (0, import_time.monotonicTime)() : 0);
|
69
|
+
} finally {
|
70
|
+
await handle.dispose();
|
71
|
+
}
|
72
|
+
}, { title: options.title, internal: options.internal });
|
73
|
+
}
|
74
|
+
_equals(locator) {
|
75
|
+
return this._frame === locator._frame && this._selector === locator._selector;
|
76
|
+
}
|
77
|
+
page() {
|
78
|
+
return this._frame.page();
|
79
|
+
}
|
80
|
+
async boundingBox(options) {
|
81
|
+
return await this._withElement((h) => h.boundingBox(), { title: "Bounding box", timeout: options?.timeout });
|
82
|
+
}
|
83
|
+
async check(options = {}) {
|
84
|
+
return await this._frame.check(this._selector, { strict: true, autoHeal: this._autoHeal, ...options });
|
85
|
+
}
|
86
|
+
async click(options = {}) {
|
87
|
+
return await this._frame.click(this._selector, { strict: true, autoHeal: this._autoHeal, ...options });
|
88
|
+
}
|
89
|
+
async dblclick(options = {}) {
|
90
|
+
await this._frame.dblclick(this._selector, { strict: true, autoHeal: this._autoHeal, ...options });
|
91
|
+
}
|
92
|
+
async dispatchEvent(type, eventInit = {}, options) {
|
93
|
+
return await this._frame.dispatchEvent(this._selector, type, eventInit, { strict: true, ...options });
|
94
|
+
}
|
95
|
+
async dragTo(target, options = {}) {
|
96
|
+
return await this._frame.dragAndDrop(this._selector, target._selector, {
|
97
|
+
strict: true,
|
98
|
+
...options
|
99
|
+
});
|
100
|
+
}
|
101
|
+
async evaluate(pageFunction, arg, options) {
|
102
|
+
return await this._withElement((h) => h.evaluate(pageFunction, arg), { title: "Evaluate", timeout: options?.timeout });
|
103
|
+
}
|
104
|
+
async _evaluateFunction(functionDeclaration, options) {
|
105
|
+
return await this._withElement((h) => h._evaluateFunction(functionDeclaration), { title: "Evaluate", timeout: options?.timeout });
|
106
|
+
}
|
107
|
+
async evaluateAll(pageFunction, arg) {
|
108
|
+
return await this._frame.$$eval(this._selector, pageFunction, arg);
|
109
|
+
}
|
110
|
+
async evaluateHandle(pageFunction, arg, options) {
|
111
|
+
return await this._withElement((h) => h.evaluateHandle(pageFunction, arg), { title: "Evaluate", timeout: options?.timeout });
|
112
|
+
}
|
113
|
+
async fill(value, options = {}) {
|
114
|
+
return await this._frame.fill(this._selector, value, { strict: true, autoHeal: this._autoHeal, ...options });
|
115
|
+
}
|
116
|
+
async clear(options = {}) {
|
117
|
+
await this._frame._wrapApiCall(() => this.fill("", options), { title: "Clear" });
|
118
|
+
}
|
119
|
+
async _highlight() {
|
120
|
+
return await this._frame._highlight(this._selector);
|
121
|
+
}
|
122
|
+
async highlight() {
|
123
|
+
return await this._frame._highlight(this._selector);
|
124
|
+
}
|
125
|
+
locator(selectorOrLocator, options) {
|
126
|
+
if ((0, import_rtti.isString)(selectorOrLocator))
|
127
|
+
return new Locator(this._frame, this._selector + " >> " + selectorOrLocator, options);
|
128
|
+
if (selectorOrLocator._frame !== this._frame)
|
129
|
+
throw new Error(`Locators must belong to the same frame.`);
|
130
|
+
return new Locator(this._frame, this._selector + " >> internal:chain=" + JSON.stringify(selectorOrLocator._selector), options);
|
131
|
+
}
|
132
|
+
getByTestId(testId) {
|
133
|
+
return this.locator((0, import_locatorUtils.getByTestIdSelector)(testIdAttributeName(), testId));
|
134
|
+
}
|
135
|
+
getByAltText(text, options) {
|
136
|
+
return this.locator((0, import_locatorUtils.getByAltTextSelector)(text, options));
|
137
|
+
}
|
138
|
+
getByLabel(text, options) {
|
139
|
+
return this.locator((0, import_locatorUtils.getByLabelSelector)(text, options));
|
140
|
+
}
|
141
|
+
getByPlaceholder(text, options) {
|
142
|
+
return this.locator((0, import_locatorUtils.getByPlaceholderSelector)(text, options));
|
143
|
+
}
|
144
|
+
getByText(text, options) {
|
145
|
+
return this.locator((0, import_locatorUtils.getByTextSelector)(text, options));
|
146
|
+
}
|
147
|
+
getByTitle(text, options) {
|
148
|
+
return this.locator((0, import_locatorUtils.getByTitleSelector)(text, options));
|
149
|
+
}
|
150
|
+
getByRole(role, options = {}) {
|
151
|
+
return this.locator((0, import_locatorUtils.getByRoleSelector)(role, options));
|
152
|
+
}
|
153
|
+
frameLocator(selector) {
|
154
|
+
return new FrameLocator(this._frame, this._selector + " >> " + selector);
|
155
|
+
}
|
156
|
+
filter(options) {
|
157
|
+
return new Locator(this._frame, this._selector, options);
|
158
|
+
}
|
159
|
+
async elementHandle(options) {
|
160
|
+
return await this._frame.waitForSelector(this._selector, { strict: true, state: "attached", ...options });
|
161
|
+
}
|
162
|
+
async elementHandles() {
|
163
|
+
return await this._frame.$$(this._selector);
|
164
|
+
}
|
165
|
+
contentFrame() {
|
166
|
+
return new FrameLocator(this._frame, this._selector);
|
167
|
+
}
|
168
|
+
describe(description, options) {
|
169
|
+
const autoHeal = options?.autoHeal ?? this._autoHeal;
|
170
|
+
return new Locator(this._frame, this._selector + " >> internal:describe=" + JSON.stringify(description), { autoHeal });
|
171
|
+
}
|
172
|
+
first() {
|
173
|
+
return new Locator(this._frame, this._selector + " >> nth=0");
|
174
|
+
}
|
175
|
+
last() {
|
176
|
+
return new Locator(this._frame, this._selector + ` >> nth=-1`);
|
177
|
+
}
|
178
|
+
nth(index) {
|
179
|
+
return new Locator(this._frame, this._selector + ` >> nth=${index}`);
|
180
|
+
}
|
181
|
+
and(locator) {
|
182
|
+
if (locator._frame !== this._frame)
|
183
|
+
throw new Error(`Locators must belong to the same frame.`);
|
184
|
+
return new Locator(this._frame, this._selector + ` >> internal:and=` + JSON.stringify(locator._selector));
|
185
|
+
}
|
186
|
+
or(locator) {
|
187
|
+
if (locator._frame !== this._frame)
|
188
|
+
throw new Error(`Locators must belong to the same frame.`);
|
189
|
+
return new Locator(this._frame, this._selector + ` >> internal:or=` + JSON.stringify(locator._selector));
|
190
|
+
}
|
191
|
+
async focus(options) {
|
192
|
+
return await this._frame.focus(this._selector, { strict: true, autoHeal: this._autoHeal, ...options });
|
193
|
+
}
|
194
|
+
async blur(options) {
|
195
|
+
await this._frame._channel.blur({ selector: this._selector, strict: true, ...options, timeout: this._frame._timeout(options) });
|
196
|
+
}
|
197
|
+
// options are only here for testing
|
198
|
+
async count(_options) {
|
199
|
+
return await this._frame._queryCount(this._selector, _options);
|
200
|
+
}
|
201
|
+
async _resolveSelector() {
|
202
|
+
return await this._frame._channel.resolveSelector({ selector: this._selector });
|
203
|
+
}
|
204
|
+
async getAttribute(name, options) {
|
205
|
+
return await this._frame.getAttribute(this._selector, name, { strict: true, ...options });
|
206
|
+
}
|
207
|
+
async hover(options = {}) {
|
208
|
+
return await this._frame.hover(this._selector, { strict: true, autoHeal: this._autoHeal, ...options });
|
209
|
+
}
|
210
|
+
async innerHTML(options) {
|
211
|
+
return await this._frame.innerHTML(this._selector, { strict: true, ...options });
|
212
|
+
}
|
213
|
+
async innerText(options) {
|
214
|
+
return await this._frame.innerText(this._selector, { strict: true, ...options });
|
215
|
+
}
|
216
|
+
async inputValue(options) {
|
217
|
+
return await this._frame.inputValue(this._selector, { strict: true, ...options });
|
218
|
+
}
|
219
|
+
async isChecked(options) {
|
220
|
+
return await this._frame.isChecked(this._selector, { strict: true, ...options });
|
221
|
+
}
|
222
|
+
async isDisabled(options) {
|
223
|
+
return await this._frame.isDisabled(this._selector, { strict: true, ...options });
|
224
|
+
}
|
225
|
+
async isEditable(options) {
|
226
|
+
return await this._frame.isEditable(this._selector, { strict: true, ...options });
|
227
|
+
}
|
228
|
+
async isEnabled(options) {
|
229
|
+
return await this._frame.isEnabled(this._selector, { strict: true, ...options });
|
230
|
+
}
|
231
|
+
async isHidden(options) {
|
232
|
+
return await this._frame.isHidden(this._selector, { strict: true, ...options });
|
233
|
+
}
|
234
|
+
async isVisible(options) {
|
235
|
+
return await this._frame.isVisible(this._selector, { strict: true, ...options });
|
236
|
+
}
|
237
|
+
async press(key, options = {}) {
|
238
|
+
return await this._frame.press(this._selector, key, { strict: true, autoHeal: this._autoHeal, ...options });
|
239
|
+
}
|
240
|
+
async screenshot(options = {}) {
|
241
|
+
const mask = options.mask;
|
242
|
+
return await this._withElement((h, timeout) => h.screenshot({ ...options, mask, timeout }), { title: "Screenshot", timeout: options.timeout });
|
243
|
+
}
|
244
|
+
async ariaSnapshot(options) {
|
245
|
+
const result = await this._frame._channel.ariaSnapshot({ ...options, selector: this._selector, timeout: this._frame._timeout(options) });
|
246
|
+
return result.snapshot;
|
247
|
+
}
|
248
|
+
async scrollIntoViewIfNeeded(options = {}) {
|
249
|
+
return await this._withElement((h, timeout) => h.scrollIntoViewIfNeeded({ ...options, timeout }), { title: "Scroll into view", timeout: options.timeout });
|
250
|
+
}
|
251
|
+
async selectOption(values, options = {}) {
|
252
|
+
return await this._frame.selectOption(this._selector, values, { strict: true, autoHeal: this._autoHeal, ...options });
|
253
|
+
}
|
254
|
+
async selectText(options = {}) {
|
255
|
+
return await this._withElement((h, timeout) => h.selectText({ ...options, timeout }), { title: "Select text", timeout: options.timeout });
|
256
|
+
}
|
257
|
+
async setChecked(checked, options) {
|
258
|
+
if (checked)
|
259
|
+
await this.check(options);
|
260
|
+
else
|
261
|
+
await this.uncheck(options);
|
262
|
+
}
|
263
|
+
async setInputFiles(files, options = {}) {
|
264
|
+
return await this._frame.setInputFiles(this._selector, files, { strict: true, autoHeal: this._autoHeal, ...options });
|
265
|
+
}
|
266
|
+
async tap(options = {}) {
|
267
|
+
return await this._frame.tap(this._selector, { strict: true, autoHeal: this._autoHeal, ...options });
|
268
|
+
}
|
269
|
+
async textContent(options) {
|
270
|
+
return await this._frame.textContent(this._selector, { strict: true, ...options });
|
271
|
+
}
|
272
|
+
async type(text, options = {}) {
|
273
|
+
return await this._frame.type(this._selector, text, { strict: true, autoHeal: this._autoHeal, ...options });
|
274
|
+
}
|
275
|
+
async pressSequentially(text, options = {}) {
|
276
|
+
return await this.type(text, options);
|
277
|
+
}
|
278
|
+
async uncheck(options = {}) {
|
279
|
+
return await this._frame.uncheck(this._selector, { strict: true, autoHeal: this._autoHeal, ...options });
|
280
|
+
}
|
281
|
+
async all() {
|
282
|
+
return new Array(await this.count()).fill(0).map((e, i) => this.nth(i));
|
283
|
+
}
|
284
|
+
async allInnerTexts() {
|
285
|
+
return await this._frame.$$eval(this._selector, (ee) => ee.map((e) => e.innerText));
|
286
|
+
}
|
287
|
+
async allTextContents() {
|
288
|
+
return await this._frame.$$eval(this._selector, (ee) => ee.map((e) => e.textContent || ""));
|
289
|
+
}
|
290
|
+
async waitFor(options) {
|
291
|
+
await this._frame._channel.waitForSelector({ selector: this._selector, strict: true, omitReturnValue: true, ...options, timeout: this._frame._timeout(options) });
|
292
|
+
}
|
293
|
+
async _expect(expression, options) {
|
294
|
+
return this._frame._expect(expression, {
|
295
|
+
...options,
|
296
|
+
selector: this._selector
|
297
|
+
});
|
298
|
+
}
|
299
|
+
_inspect() {
|
300
|
+
return this.toString();
|
301
|
+
}
|
302
|
+
toString() {
|
303
|
+
return (0, import_locatorGenerators.asLocator)("javascript", this._selector);
|
304
|
+
}
|
305
|
+
}
|
306
|
+
class FrameLocator {
|
307
|
+
constructor(frame, selector) {
|
308
|
+
this._frame = frame;
|
309
|
+
this._frameSelector = selector;
|
310
|
+
}
|
311
|
+
locator(selectorOrLocator, options) {
|
312
|
+
if ((0, import_rtti.isString)(selectorOrLocator))
|
313
|
+
return new Locator(this._frame, this._frameSelector + " >> internal:control=enter-frame >> " + selectorOrLocator, options);
|
314
|
+
if (selectorOrLocator._frame !== this._frame)
|
315
|
+
throw new Error(`Locators must belong to the same frame.`);
|
316
|
+
return new Locator(this._frame, this._frameSelector + " >> internal:control=enter-frame >> " + selectorOrLocator._selector, options);
|
317
|
+
}
|
318
|
+
getByTestId(testId) {
|
319
|
+
return this.locator((0, import_locatorUtils.getByTestIdSelector)(testIdAttributeName(), testId));
|
320
|
+
}
|
321
|
+
getByAltText(text, options) {
|
322
|
+
return this.locator((0, import_locatorUtils.getByAltTextSelector)(text, options));
|
323
|
+
}
|
324
|
+
getByLabel(text, options) {
|
325
|
+
return this.locator((0, import_locatorUtils.getByLabelSelector)(text, options));
|
326
|
+
}
|
327
|
+
getByPlaceholder(text, options) {
|
328
|
+
return this.locator((0, import_locatorUtils.getByPlaceholderSelector)(text, options));
|
329
|
+
}
|
330
|
+
getByText(text, options) {
|
331
|
+
return this.locator((0, import_locatorUtils.getByTextSelector)(text, options));
|
332
|
+
}
|
333
|
+
getByTitle(text, options) {
|
334
|
+
return this.locator((0, import_locatorUtils.getByTitleSelector)(text, options));
|
335
|
+
}
|
336
|
+
getByRole(role, options = {}) {
|
337
|
+
return this.locator((0, import_locatorUtils.getByRoleSelector)(role, options));
|
338
|
+
}
|
339
|
+
owner() {
|
340
|
+
return new Locator(this._frame, this._frameSelector);
|
341
|
+
}
|
342
|
+
frameLocator(selector) {
|
343
|
+
return new FrameLocator(this._frame, this._frameSelector + " >> internal:control=enter-frame >> " + selector);
|
344
|
+
}
|
345
|
+
first() {
|
346
|
+
return new FrameLocator(this._frame, this._frameSelector + " >> nth=0");
|
347
|
+
}
|
348
|
+
last() {
|
349
|
+
return new FrameLocator(this._frame, this._frameSelector + ` >> nth=-1`);
|
350
|
+
}
|
351
|
+
nth(index) {
|
352
|
+
return new FrameLocator(this._frame, this._frameSelector + ` >> nth=${index}`);
|
353
|
+
}
|
354
|
+
}
|
355
|
+
let _testIdAttributeName = "data-testid";
|
356
|
+
function testIdAttributeName() {
|
357
|
+
return _testIdAttributeName;
|
358
|
+
}
|
359
|
+
function setTestIdAttribute(attributeName) {
|
360
|
+
_testIdAttributeName = attributeName;
|
361
|
+
}
|
362
|
+
// Annotate the CommonJS export names for ESM import in node:
|
363
|
+
0 && (module.exports = {
|
364
|
+
FrameLocator,
|
365
|
+
Locator,
|
366
|
+
setTestIdAttribute,
|
367
|
+
testIdAttributeName
|
368
|
+
});
|