@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.
- package/ThirdPartyNotices.txt +65 -123
- package/browsers.json +16 -14
- package/index.js +1 -1
- package/lib/androidServerImpl.js +47 -50
- package/lib/browserServerImpl.js +89 -69
- package/lib/checkly/escapeRegExp.js +23 -27
- package/lib/checkly/fetch.js +64 -46
- package/lib/checkly/secretsFilter.js +49 -35
- package/lib/cli/driver.js +71 -69
- package/lib/cli/program.js +400 -359
- package/lib/cli/programWithTestStub.js +51 -45
- package/lib/client/accessibility.js +31 -32
- package/lib/client/android.js +151 -242
- package/lib/client/api.js +135 -283
- package/lib/client/artifact.js +39 -36
- package/lib/client/browser.js +96 -71
- package/lib/client/browserContext.js +314 -345
- package/lib/client/browserType.js +103 -127
- package/lib/client/cdpSession.js +29 -31
- package/lib/client/channelOwner.js +90 -113
- package/lib/client/clientHelper.js +48 -39
- package/lib/client/clientInstrumentation.js +40 -37
- package/lib/client/clientStackTrace.js +41 -37
- package/lib/client/clock.js +36 -36
- package/lib/client/connection.js +188 -214
- package/lib/client/consoleMessage.js +31 -28
- package/lib/client/coverage.js +25 -22
- package/lib/client/dialog.js +30 -31
- package/lib/client/download.js +25 -25
- package/lib/client/electron.js +80 -77
- package/lib/client/elementHandle.js +120 -159
- package/lib/client/errors.js +53 -53
- package/lib/client/eventEmitter.js +124 -121
- package/lib/client/events.js +72 -68
- package/lib/client/fetch.js +166 -190
- package/lib/client/fileChooser.js +25 -24
- package/lib/client/fileUtils.js +31 -28
- package/lib/client/frame.js +207 -306
- package/lib/client/harRouter.js +42 -52
- package/lib/client/input.js +42 -69
- package/lib/client/jsHandle.js +54 -69
- package/lib/client/jsonPipe.js +27 -23
- package/lib/client/localUtils.js +29 -29
- package/lib/client/locator.js +145 -237
- package/lib/client/network.js +282 -307
- package/lib/client/page.js +269 -318
- package/lib/client/platform.js +46 -43
- package/lib/client/playwright.js +51 -76
- package/lib/client/selectors.js +45 -63
- package/lib/client/stream.js +29 -25
- package/lib/client/timeoutSettings.js +55 -41
- package/lib/client/tracing.js +49 -96
- package/lib/client/types.js +26 -22
- package/lib/client/video.js +35 -27
- package/lib/client/waiter.js +69 -88
- package/lib/client/webError.js +25 -23
- package/lib/client/webSocket.js +43 -56
- package/lib/client/worker.js +48 -56
- package/lib/client/writableStream.js +27 -23
- package/lib/generated/bindingsControllerSource.js +28 -0
- package/lib/generated/clockSource.js +26 -6
- package/lib/generated/consoleApiSource.js +26 -6
- package/lib/generated/injectedScriptSource.js +26 -6
- package/lib/generated/pollingRecorderSource.js +26 -6
- package/lib/generated/storageScriptSource.js +28 -0
- package/lib/generated/utilityScriptSource.js +26 -6
- package/lib/generated/webSocketMockSource.js +333 -5
- package/lib/inProcessFactory.js +51 -53
- package/lib/inprocess.js +2 -19
- package/lib/outofprocess.js +51 -46
- package/lib/protocol/serializers.js +153 -134
- package/lib/protocol/validator.js +2807 -2739
- package/lib/protocol/validatorPrimitives.js +114 -73
- package/lib/remote/playwrightConnection.js +88 -242
- package/lib/remote/playwrightServer.js +305 -92
- package/lib/server/accessibility.js +44 -37
- package/lib/server/android/android.js +251 -241
- package/lib/server/android/backendAdb.js +87 -82
- package/lib/server/artifact.js +78 -55
- package/lib/server/bidi/bidiBrowser.js +297 -158
- package/lib/server/bidi/bidiChromium.js +119 -89
- package/lib/server/bidi/bidiConnection.js +66 -83
- package/lib/server/bidi/bidiExecutionContext.js +129 -113
- package/lib/server/bidi/bidiFirefox.js +86 -76
- package/lib/server/bidi/bidiInput.js +106 -117
- package/lib/server/bidi/bidiNetworkManager.js +142 -159
- package/lib/server/bidi/bidiOverCdp.js +57 -58
- package/lib/server/bidi/bidiPage.js +260 -260
- package/lib/server/bidi/bidiPdf.js +52 -86
- package/lib/server/bidi/third_party/bidiCommands.d.js +22 -0
- package/lib/server/bidi/third_party/bidiDeserializer.js +55 -50
- package/lib/server/bidi/third_party/bidiKeyboard.js +236 -220
- package/lib/server/bidi/third_party/bidiProtocol.js +22 -137
- package/lib/server/bidi/third_party/bidiProtocolCore.js +152 -0
- package/lib/server/bidi/third_party/bidiProtocolPermissions.js +42 -0
- package/lib/server/bidi/third_party/bidiSerializer.js +67 -63
- package/lib/server/bidi/third_party/firefoxPrefs.js +141 -119
- package/lib/server/browser.js +93 -95
- package/lib/server/browserContext.js +419 -429
- package/lib/server/browserType.js +186 -216
- package/lib/server/callLog.js +47 -44
- package/lib/server/chromium/chromium.js +235 -203
- package/lib/server/chromium/chromiumSwitches.js +100 -67
- package/lib/server/chromium/crAccessibility.js +157 -131
- package/lib/server/chromium/crBrowser.js +310 -292
- package/lib/server/chromium/crConnection.js +95 -121
- package/lib/server/chromium/crCoverage.js +121 -131
- package/lib/server/chromium/crDevTools.js +60 -51
- package/lib/server/chromium/crDragDrop.js +68 -84
- package/lib/server/chromium/crExecutionContext.js +89 -83
- package/lib/server/chromium/crInput.js +118 -113
- package/lib/server/chromium/crNetworkManager.js +274 -375
- package/lib/server/chromium/crPage.js +536 -593
- package/lib/server/chromium/crPdf.js +54 -86
- package/lib/server/chromium/crProtocolHelper.js +92 -80
- package/lib/server/chromium/crServiceWorker.js +84 -73
- package/lib/server/chromium/defaultFontFamilies.js +152 -135
- package/lib/server/chromium/protocol.d.js +16 -0
- package/lib/server/chromium/videoRecorder.js +66 -99
- package/lib/server/clock.js +107 -83
- package/lib/server/codegen/csharp.js +192 -162
- package/lib/server/codegen/java.js +156 -129
- package/lib/server/codegen/javascript.js +163 -148
- package/lib/server/codegen/jsonl.js +32 -28
- package/lib/server/codegen/language.js +75 -52
- package/lib/server/codegen/languages.js +65 -27
- package/lib/server/codegen/python.js +141 -126
- package/lib/server/codegen/types.js +15 -4
- package/lib/server/console.js +28 -32
- package/lib/server/cookieStore.js +108 -86
- package/lib/server/debugController.js +147 -151
- package/lib/server/debugger.js +86 -78
- package/lib/server/deviceDescriptors.js +37 -24
- package/lib/server/deviceDescriptorsSource.json +238 -128
- package/lib/server/dialog.js +84 -39
- package/lib/server/dispatchers/androidDispatcher.js +257 -148
- package/lib/server/dispatchers/artifactDispatcher.js +79 -79
- package/lib/server/dispatchers/browserContextDispatcher.js +289 -259
- package/lib/server/dispatchers/browserDispatcher.js +96 -148
- package/lib/server/dispatchers/browserTypeDispatcher.js +50 -41
- package/lib/server/dispatchers/cdpSessionDispatcher.js +35 -39
- package/lib/server/dispatchers/debugControllerDispatcher.js +65 -83
- package/lib/server/dispatchers/dialogDispatcher.js +34 -31
- package/lib/server/dispatchers/dispatcher.js +208 -248
- package/lib/server/dispatchers/electronDispatcher.js +66 -70
- package/lib/server/dispatchers/elementHandlerDispatcher.js +164 -216
- package/lib/server/dispatchers/frameDispatcher.js +211 -272
- package/lib/server/dispatchers/jsHandleDispatcher.js +63 -75
- package/lib/server/dispatchers/jsonPipeDispatcher.js +37 -38
- package/lib/server/dispatchers/localUtilsDispatcher.js +121 -119
- package/lib/server/dispatchers/networkDispatchers.js +117 -128
- package/lib/server/dispatchers/pageDispatcher.js +256 -248
- package/lib/server/dispatchers/playwrightDispatcher.js +92 -87
- package/lib/server/dispatchers/streamDispatcher.js +52 -48
- package/lib/server/dispatchers/tracingDispatcher.js +47 -52
- package/lib/server/dispatchers/webSocketRouteDispatcher.js +126 -150
- package/lib/server/dispatchers/writableStreamDispatcher.js +65 -43
- package/lib/server/dom.js +485 -582
- package/lib/server/download.js +47 -37
- package/lib/server/electron/electron.js +216 -243
- package/lib/server/electron/loader.js +9 -37
- package/lib/server/errors.js +47 -46
- package/lib/server/fetch.js +317 -360
- package/lib/server/fileChooser.js +25 -24
- package/lib/server/fileUploadUtils.js +66 -60
- package/lib/server/firefox/ffAccessibility.js +153 -131
- package/lib/server/firefox/ffBrowser.js +268 -305
- package/lib/server/firefox/ffConnection.js +63 -84
- package/lib/server/firefox/ffExecutionContext.js +92 -73
- package/lib/server/firefox/ffInput.js +82 -84
- package/lib/server/firefox/ffNetworkManager.js +137 -114
- package/lib/server/firefox/ffPage.js +261 -293
- package/lib/server/firefox/firefox.js +80 -72
- package/lib/server/firefox/protocol.d.js +16 -0
- package/lib/server/formData.js +107 -35
- package/lib/server/frameSelectors.js +98 -114
- package/lib/server/frames.js +845 -1055
- package/lib/server/har/harRecorder.js +85 -77
- package/lib/server/har/harTracer.js +290 -223
- package/lib/server/harBackend.js +80 -80
- package/lib/server/helper.js +55 -59
- package/lib/server/index.js +59 -99
- package/lib/server/input.js +151 -189
- package/lib/server/instrumentation.js +57 -44
- package/lib/server/javascript.js +133 -134
- package/lib/server/launchApp.js +113 -75
- package/lib/server/localUtils.js +150 -142
- package/lib/server/macEditingCommands.js +141 -137
- package/lib/server/network.js +299 -303
- package/lib/server/page.js +513 -544
- package/lib/server/pipeTransport.js +49 -45
- package/lib/server/playwright.js +58 -67
- package/lib/server/progress.js +137 -68
- package/lib/server/protocolError.js +34 -31
- package/lib/server/recorder/chat.js +70 -86
- package/lib/server/recorder/recorderApp.js +341 -176
- package/lib/server/recorder/recorderInTraceViewer.js +65 -94
- package/lib/server/recorder/recorderRunner.js +93 -116
- package/lib/server/recorder/recorderSignalProcessor.js +83 -0
- package/lib/server/recorder/recorderUtils.js +104 -47
- package/lib/server/recorder/throttledFile.js +42 -30
- package/lib/server/recorder.js +395 -275
- package/lib/server/registry/browserFetcher.js +106 -101
- package/lib/server/registry/dependencies.js +245 -196
- package/lib/server/registry/index.js +930 -803
- package/lib/server/registry/nativeDeps.js +1073 -464
- package/lib/server/registry/oopDownloadBrowserMain.js +57 -75
- package/lib/server/screenshotter.js +160 -191
- package/lib/server/selectors.js +90 -51
- package/lib/server/socksClientCertificatesInterceptor.js +171 -186
- package/lib/server/socksInterceptor.js +62 -70
- package/lib/server/trace/recorder/snapshotter.js +76 -102
- package/lib/server/trace/recorder/snapshotterInjected.js +238 -217
- package/lib/server/trace/recorder/tracing.js +354 -362
- package/lib/server/trace/test/inMemorySnapshotter.js +46 -52
- package/lib/server/trace/viewer/traceViewer.js +160 -147
- package/lib/server/transport.js +119 -134
- package/lib/server/types.js +26 -22
- package/lib/server/usKeyboardLayout.js +135 -545
- package/lib/server/utils/ascii.js +39 -26
- package/lib/server/utils/comparators.js +105 -103
- package/lib/server/utils/crypto.js +157 -112
- package/lib/server/utils/debug.js +36 -32
- package/lib/server/utils/debugLogger.js +77 -48
- package/lib/server/utils/env.js +52 -37
- package/lib/server/utils/eventsHelper.js +29 -28
- package/lib/server/utils/expectUtils.js +31 -26
- package/lib/server/utils/fileUtils.js +123 -136
- package/lib/server/utils/happyEyeballs.js +141 -126
- package/lib/server/utils/hostPlatform.js +84 -120
- package/lib/server/utils/httpServer.js +106 -121
- package/lib/server/utils/image_tools/colorUtils.js +42 -51
- package/lib/server/utils/image_tools/compare.js +44 -43
- package/lib/server/utils/image_tools/imageChannel.js +38 -30
- package/lib/server/utils/image_tools/stats.js +40 -40
- package/lib/server/utils/linuxUtils.js +50 -37
- package/lib/server/utils/network.js +152 -96
- package/lib/server/utils/nodePlatform.js +87 -79
- package/lib/server/utils/pipeTransport.js +44 -42
- package/lib/server/utils/processLauncher.js +111 -121
- package/lib/server/utils/profiler.js +52 -39
- package/lib/server/utils/socksProxy.js +280 -339
- package/lib/server/utils/spawnAsync.js +37 -41
- package/lib/server/utils/task.js +31 -38
- package/lib/server/utils/userAgent.js +73 -66
- package/lib/server/utils/wsServer.js +68 -75
- package/lib/server/utils/zipFile.js +36 -37
- package/lib/server/utils/zones.js +37 -34
- package/lib/server/webkit/protocol.d.js +16 -0
- package/lib/server/webkit/webkit.js +77 -61
- package/lib/server/webkit/wkAccessibility.js +161 -118
- package/lib/server/webkit/wkBrowser.js +193 -184
- package/lib/server/webkit/wkConnection.js +59 -83
- package/lib/server/webkit/wkExecutionContext.js +85 -70
- package/lib/server/webkit/wkInput.js +97 -95
- package/lib/server/webkit/wkInterceptableRequest.js +102 -95
- package/lib/server/webkit/wkPage.js +568 -667
- package/lib/server/webkit/wkProvisionalPage.js +45 -56
- package/lib/server/webkit/wkWorkers.js +79 -79
- package/lib/utils/expectUtils.js +31 -26
- package/lib/utils/isomorphic/ariaSnapshot.js +149 -152
- package/lib/utils/isomorphic/assert.js +28 -22
- package/lib/utils/isomorphic/colors.js +66 -59
- package/lib/utils/isomorphic/cssParser.js +120 -125
- package/lib/utils/isomorphic/cssTokenizer.js +436 -364
- package/lib/utils/isomorphic/headers.js +38 -37
- package/lib/utils/isomorphic/locatorGenerators.js +358 -357
- package/lib/utils/isomorphic/locatorParser.js +96 -105
- package/lib/utils/isomorphic/locatorUtils.js +63 -44
- package/lib/utils/isomorphic/manualPromise.js +46 -39
- package/lib/utils/isomorphic/mimeType.js +447 -25
- package/lib/utils/isomorphic/multimap.js +34 -27
- package/lib/utils/isomorphic/protocolFormatter.js +68 -0
- package/lib/utils/isomorphic/protocolMetainfo.js +321 -0
- package/lib/utils/isomorphic/recorderUtils.js +140 -181
- package/lib/utils/isomorphic/rtti.js +35 -33
- package/lib/utils/isomorphic/selectorParser.js +182 -193
- package/lib/utils/isomorphic/semaphore.js +27 -24
- package/lib/utils/isomorphic/stackTrace.js +87 -98
- package/lib/utils/isomorphic/stringUtils.js +98 -112
- package/lib/utils/isomorphic/time.js +46 -22
- package/lib/utils/isomorphic/timeoutRunner.js +53 -53
- package/lib/utils/isomorphic/traceUtils.js +37 -41
- package/lib/utils/isomorphic/types.js +15 -4
- package/lib/utils/isomorphic/urlMatch.js +113 -67
- package/lib/utils/isomorphic/utilityScriptSerializers.js +251 -0
- package/lib/utils.js +101 -443
- package/lib/utilsBundle.js +101 -52
- package/lib/utilsBundleImpl/index.js +160 -150
- package/lib/zipBundle.js +32 -23
- package/lib/zipBundleImpl.js +4 -4
- package/package.json +1 -1
- package/types/protocol.d.ts +1267 -1057
- package/types/types.d.ts +131 -29
- package/lib/common/socksProxy.js +0 -569
- package/lib/common/timeoutSettings.js +0 -73
- package/lib/common/types.js +0 -5
- package/lib/image_tools/colorUtils.js +0 -98
- package/lib/image_tools/compare.js +0 -108
- package/lib/image_tools/imageChannel.js +0 -70
- package/lib/image_tools/stats.js +0 -102
- package/lib/protocol/debug.js +0 -27
- package/lib/protocol/transport.js +0 -82
- package/lib/server/dispatchers/selectorsDispatcher.js +0 -36
- package/lib/server/isomorphic/utilityScriptSerializers.js +0 -229
- package/lib/server/recorder/contextRecorder.js +0 -290
- package/lib/server/recorder/recorderCollection.js +0 -104
- package/lib/server/recorder/recorderFrontend.js +0 -5
- package/lib/server/storageScript.js +0 -160
- package/lib/server/timeoutSettings.js +0 -74
- package/lib/third_party/diff_match_patch.js +0 -2222
- package/lib/utils/ascii.js +0 -31
- package/lib/utils/comparators.js +0 -171
- package/lib/utils/crypto.js +0 -174
- package/lib/utils/debug.js +0 -46
- package/lib/utils/debugLogger.js +0 -91
- package/lib/utils/env.js +0 -49
- package/lib/utils/eventsHelper.js +0 -38
- package/lib/utils/fileUtils.js +0 -205
- package/lib/utils/happy-eyeballs.js +0 -210
- package/lib/utils/headers.js +0 -52
- package/lib/utils/hostPlatform.js +0 -133
- package/lib/utils/httpServer.js +0 -237
- package/lib/utils/index.js +0 -368
- package/lib/utils/linuxUtils.js +0 -78
- package/lib/utils/manualPromise.js +0 -109
- package/lib/utils/multimap.js +0 -75
- package/lib/utils/network.js +0 -160
- package/lib/utils/processLauncher.js +0 -248
- package/lib/utils/profiler.js +0 -53
- package/lib/utils/rtti.js +0 -44
- package/lib/utils/semaphore.js +0 -51
- package/lib/utils/spawnAsync.js +0 -45
- package/lib/utils/stackTrace.js +0 -121
- package/lib/utils/task.js +0 -58
- package/lib/utils/time.js +0 -37
- package/lib/utils/timeoutRunner.js +0 -66
- package/lib/utils/traceUtils.js +0 -44
- package/lib/utils/userAgent.js +0 -105
- package/lib/utils/wsServer.js +0 -127
- package/lib/utils/zipFile.js +0 -75
- package/lib/utils/zones.js +0 -62
- package/lib/vite/htmlReport/index.html +0 -69
- package/lib/vite/recorder/assets/codeMirrorModule-B9YMkrwa.js +0 -24
- package/lib/vite/recorder/assets/codeMirrorModule-C3UTv-Ge.css +0 -1
- package/lib/vite/recorder/assets/codicon-DCmgc-ay.ttf +0 -0
- package/lib/vite/recorder/assets/index-ELPgmkwA.js +0 -184
- package/lib/vite/recorder/assets/index-eHBmevrY.css +0 -1
- package/lib/vite/recorder/index.html +0 -29
- package/lib/vite/recorder/playwright-logo.svg +0 -9
- package/lib/vite/traceViewer/assets/codeMirrorModule-gU1OOCQO.js +0 -24
- package/lib/vite/traceViewer/assets/defaultSettingsView-B5n_FjMx.js +0 -1
- package/lib/vite/traceViewer/assets/inspectorTab-6Tru8Mn_.js +0 -235
- package/lib/vite/traceViewer/assets/workbench-B_Nj4NA2.js +0 -25
- package/lib/vite/traceViewer/assets/xtermModule-BoAIEibi.js +0 -9
- package/lib/vite/traceViewer/codeMirrorModule.C3UTv-Ge.css +0 -1
- package/lib/vite/traceViewer/codicon.DCmgc-ay.ttf +0 -0
- package/lib/vite/traceViewer/defaultSettingsView.CO3FR0CX.css +0 -1
- package/lib/vite/traceViewer/embedded.DpNPH6mk.js +0 -2
- package/lib/vite/traceViewer/embedded.html +0 -18
- package/lib/vite/traceViewer/embedded.mLhjB5IF.css +0 -1
- package/lib/vite/traceViewer/index.CFOW-Ezb.css +0 -1
- package/lib/vite/traceViewer/index.CuE3SYGw.js +0 -2
- package/lib/vite/traceViewer/index.html +0 -47
- package/lib/vite/traceViewer/inspectorTab.CXDulcFG.css +0 -1
- package/lib/vite/traceViewer/playwright-logo.svg +0 -9
- package/lib/vite/traceViewer/recorder.BD-uZJs7.js +0 -2
- package/lib/vite/traceViewer/recorder.html +0 -17
- package/lib/vite/traceViewer/recorder.tn0RQdqM.css +0 -0
- package/lib/vite/traceViewer/snapshot.html +0 -21
- package/lib/vite/traceViewer/sw.bundle.js +0 -3
- package/lib/vite/traceViewer/uiMode.BatfzHMG.css +0 -1
- package/lib/vite/traceViewer/uiMode.DHrNgddz.js +0 -5
- package/lib/vite/traceViewer/uiMode.html +0 -21
- package/lib/vite/traceViewer/workbench.B9vIAzH9.css +0 -1
- package/lib/vite/traceViewer/xtermModule.Beg8tuEN.css +0 -32
package/lib/client/locator.js
CHANGED
|
@@ -1,75 +1,74 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
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
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
var
|
|
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
|
|
39
|
-
|
|
40
|
-
if (options
|
|
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)
|
|
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
|
|
47
|
+
if (options?.hasNot) {
|
|
46
48
|
const locator = options.hasNot;
|
|
47
|
-
if (locator._frame !== 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 (
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
});
|
|
57
|
-
const deadline = 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
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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,
|
|
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(),
|
|
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
|
-
|
|
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),
|
|
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),
|
|
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
|
-
|
|
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,
|
|
140
|
-
|
|
141
|
-
|
|
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,
|
|
129
|
+
return this.locator((0, import_locatorUtils.getByTestIdSelector)(testIdAttributeName(), testId));
|
|
145
130
|
}
|
|
146
131
|
getByAltText(text, options) {
|
|
147
|
-
return this.locator((0,
|
|
132
|
+
return this.locator((0, import_locatorUtils.getByAltTextSelector)(text, options));
|
|
148
133
|
}
|
|
149
134
|
getByLabel(text, options) {
|
|
150
|
-
return this.locator((0,
|
|
135
|
+
return this.locator((0, import_locatorUtils.getByLabelSelector)(text, options));
|
|
151
136
|
}
|
|
152
137
|
getByPlaceholder(text, options) {
|
|
153
|
-
return this.locator((0,
|
|
138
|
+
return this.locator((0, import_locatorUtils.getByPlaceholderSelector)(text, options));
|
|
154
139
|
}
|
|
155
140
|
getByText(text, options) {
|
|
156
|
-
return this.locator((0,
|
|
141
|
+
return this.locator((0, import_locatorUtils.getByTextSelector)(text, options));
|
|
157
142
|
}
|
|
158
143
|
getByTitle(text, options) {
|
|
159
|
-
return this.locator((0,
|
|
144
|
+
return this.locator((0, import_locatorUtils.getByTitleSelector)(text, options));
|
|
160
145
|
}
|
|
161
146
|
getByRole(role, options = {}) {
|
|
162
|
-
return this.locator((0,
|
|
147
|
+
return this.locator((0, import_locatorUtils.getByRoleSelector)(role, options));
|
|
163
148
|
}
|
|
164
149
|
frameLocator(selector) {
|
|
165
|
-
return new FrameLocator(this._frame, this._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 +
|
|
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)
|
|
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)
|
|
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
|
-
|
|
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)
|
|
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
|
-
|
|
381
|
-
selector: this._selector,
|
|
382
|
-
expression,
|
|
289
|
+
return this._frame._expect(expression, {
|
|
383
290
|
...options,
|
|
384
|
-
|
|
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,
|
|
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,
|
|
408
|
-
|
|
409
|
-
|
|
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,
|
|
314
|
+
return this.locator((0, import_locatorUtils.getByTestIdSelector)(testIdAttributeName(), testId));
|
|
413
315
|
}
|
|
414
316
|
getByAltText(text, options) {
|
|
415
|
-
return this.locator((0,
|
|
317
|
+
return this.locator((0, import_locatorUtils.getByAltTextSelector)(text, options));
|
|
416
318
|
}
|
|
417
319
|
getByLabel(text, options) {
|
|
418
|
-
return this.locator((0,
|
|
320
|
+
return this.locator((0, import_locatorUtils.getByLabelSelector)(text, options));
|
|
419
321
|
}
|
|
420
322
|
getByPlaceholder(text, options) {
|
|
421
|
-
return this.locator((0,
|
|
323
|
+
return this.locator((0, import_locatorUtils.getByPlaceholderSelector)(text, options));
|
|
422
324
|
}
|
|
423
325
|
getByText(text, options) {
|
|
424
|
-
return this.locator((0,
|
|
326
|
+
return this.locator((0, import_locatorUtils.getByTextSelector)(text, options));
|
|
425
327
|
}
|
|
426
328
|
getByTitle(text, options) {
|
|
427
|
-
return this.locator((0,
|
|
329
|
+
return this.locator((0, import_locatorUtils.getByTitleSelector)(text, options));
|
|
428
330
|
}
|
|
429
331
|
getByRole(role, options = {}) {
|
|
430
|
-
return this.locator((0,
|
|
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 +
|
|
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 +
|
|
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
|
-
|
|
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
|
+
});
|