@checkly/playwright-core 1.41.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/LICENSE +202 -0
- package/NOTICE +5 -0
- package/README.md +3 -0
- package/ThirdPartyNotices.txt +1513 -0
- package/bin/PrintDeps.exe +0 -0
- package/bin/README.md +2 -0
- package/bin/install_media_pack.ps1 +5 -0
- package/bin/reinstall_chrome_beta_linux.sh +40 -0
- package/bin/reinstall_chrome_beta_mac.sh +13 -0
- package/bin/reinstall_chrome_beta_win.ps1 +23 -0
- package/bin/reinstall_chrome_stable_linux.sh +40 -0
- package/bin/reinstall_chrome_stable_mac.sh +12 -0
- package/bin/reinstall_chrome_stable_win.ps1 +23 -0
- package/bin/reinstall_msedge_beta_linux.sh +40 -0
- package/bin/reinstall_msedge_beta_mac.sh +11 -0
- package/bin/reinstall_msedge_beta_win.ps1 +22 -0
- package/bin/reinstall_msedge_dev_linux.sh +40 -0
- package/bin/reinstall_msedge_dev_mac.sh +11 -0
- package/bin/reinstall_msedge_dev_win.ps1 +22 -0
- package/bin/reinstall_msedge_stable_linux.sh +40 -0
- package/bin/reinstall_msedge_stable_mac.sh +11 -0
- package/bin/reinstall_msedge_stable_win.ps1 +23 -0
- package/browsers.json +64 -0
- package/cli.js +17 -0
- package/index.d.ts +17 -0
- package/index.js +33 -0
- package/index.mjs +28 -0
- package/lib/androidServerImpl.js +69 -0
- package/lib/browserServerImpl.js +92 -0
- package/lib/cli/driver.js +97 -0
- package/lib/cli/program.js +582 -0
- package/lib/cli/programWithTestStub.js +67 -0
- package/lib/client/accessibility.js +50 -0
- package/lib/client/android.js +473 -0
- package/lib/client/api.js +272 -0
- package/lib/client/artifact.js +79 -0
- package/lib/client/browser.js +145 -0
- package/lib/client/browserContext.js +509 -0
- package/lib/client/browserType.js +233 -0
- package/lib/client/cdpSession.js +53 -0
- package/lib/client/channelOwner.js +229 -0
- package/lib/client/clientHelper.js +57 -0
- package/lib/client/clientInstrumentation.js +40 -0
- package/lib/client/connection.js +327 -0
- package/lib/client/consoleMessage.js +55 -0
- package/lib/client/coverage.js +41 -0
- package/lib/client/dialog.js +57 -0
- package/lib/client/download.js +62 -0
- package/lib/client/electron.js +130 -0
- package/lib/client/elementHandle.js +291 -0
- package/lib/client/errors.js +77 -0
- package/lib/client/events.js +93 -0
- package/lib/client/fetch.js +343 -0
- package/lib/client/fileChooser.js +45 -0
- package/lib/client/frame.js +506 -0
- package/lib/client/harRouter.js +93 -0
- package/lib/client/input.js +111 -0
- package/lib/client/jsHandle.js +123 -0
- package/lib/client/jsonPipe.js +35 -0
- package/lib/client/localUtils.js +35 -0
- package/lib/client/locator.js +432 -0
- package/lib/client/network.js +601 -0
- package/lib/client/page.js +707 -0
- package/lib/client/playwright.js +74 -0
- package/lib/client/selectors.js +67 -0
- package/lib/client/stream.js +54 -0
- package/lib/client/tracing.js +135 -0
- package/lib/client/types.js +24 -0
- package/lib/client/video.js +51 -0
- package/lib/client/waiter.js +158 -0
- package/lib/client/webError.js +37 -0
- package/lib/client/worker.js +71 -0
- package/lib/client/writableStream.js +54 -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/consoleApiSource.js +7 -0
- package/lib/generated/injectedScriptSource.js +7 -0
- package/lib/generated/recorderSource.js +7 -0
- package/lib/generated/utilityScriptSource.js +7 -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 +54 -0
- package/lib/inprocess.js +20 -0
- package/lib/outofprocess.js +67 -0
- package/lib/protocol/debug.js +27 -0
- package/lib/protocol/serializers.js +172 -0
- package/lib/protocol/transport.js +82 -0
- package/lib/protocol/validator.js +2599 -0
- package/lib/protocol/validatorPrimitives.js +139 -0
- package/lib/remote/playwrightConnection.js +274 -0
- package/lib/remote/playwrightServer.js +110 -0
- package/lib/server/accessibility.js +62 -0
- package/lib/server/android/android.js +441 -0
- package/lib/server/android/backendAdb.js +172 -0
- package/lib/server/artifact.js +104 -0
- package/lib/server/browser.js +129 -0
- package/lib/server/browserContext.js +609 -0
- package/lib/server/browserType.js +300 -0
- package/lib/server/chromium/appIcon.png +0 -0
- package/lib/server/chromium/chromium.js +346 -0
- package/lib/server/chromium/chromiumSwitches.js +41 -0
- package/lib/server/chromium/crAccessibility.js +237 -0
- package/lib/server/chromium/crBrowser.js +521 -0
- package/lib/server/chromium/crConnection.js +228 -0
- package/lib/server/chromium/crCoverage.js +246 -0
- package/lib/server/chromium/crDevTools.js +104 -0
- package/lib/server/chromium/crDragDrop.js +144 -0
- package/lib/server/chromium/crExecutionContext.js +156 -0
- package/lib/server/chromium/crInput.js +171 -0
- package/lib/server/chromium/crNetworkManager.js +723 -0
- package/lib/server/chromium/crPage.js +1173 -0
- package/lib/server/chromium/crPdf.js +147 -0
- package/lib/server/chromium/crProtocolHelper.js +131 -0
- package/lib/server/chromium/crServiceWorker.js +115 -0
- package/lib/server/chromium/defaultFontFamilies.js +145 -0
- package/lib/server/chromium/videoRecorder.js +155 -0
- package/lib/server/console.js +59 -0
- package/lib/server/cookieStore.js +112 -0
- package/lib/server/debugController.js +236 -0
- package/lib/server/debugger.js +132 -0
- package/lib/server/deviceDescriptors.js +21 -0
- package/lib/server/deviceDescriptorsSource.json +1549 -0
- package/lib/server/dialog.js +70 -0
- package/lib/server/dispatchers/androidDispatcher.js +193 -0
- package/lib/server/dispatchers/artifactDispatcher.js +118 -0
- package/lib/server/dispatchers/browserContextDispatcher.js +306 -0
- package/lib/server/dispatchers/browserDispatcher.js +170 -0
- package/lib/server/dispatchers/browserTypeDispatcher.js +55 -0
- package/lib/server/dispatchers/cdpSessionDispatcher.js +48 -0
- package/lib/server/dispatchers/debugControllerDispatcher.js +103 -0
- package/lib/server/dispatchers/dialogDispatcher.js +44 -0
- package/lib/server/dispatchers/dispatcher.js +400 -0
- package/lib/server/dispatchers/electronDispatcher.js +80 -0
- package/lib/server/dispatchers/elementHandlerDispatcher.js +228 -0
- package/lib/server/dispatchers/frameDispatcher.js +287 -0
- package/lib/server/dispatchers/jsHandleDispatcher.js +102 -0
- package/lib/server/dispatchers/jsonPipeDispatcher.js +61 -0
- package/lib/server/dispatchers/localUtilsDispatcher.js +399 -0
- package/lib/server/dispatchers/networkDispatchers.js +221 -0
- package/lib/server/dispatchers/pageDispatcher.js +363 -0
- package/lib/server/dispatchers/playwrightDispatcher.js +105 -0
- package/lib/server/dispatchers/selectorsDispatcher.js +36 -0
- package/lib/server/dispatchers/streamDispatcher.js +62 -0
- package/lib/server/dispatchers/tracingDispatcher.js +54 -0
- package/lib/server/dispatchers/writableStreamDispatcher.js +55 -0
- package/lib/server/dom.js +808 -0
- package/lib/server/download.js +53 -0
- package/lib/server/electron/electron.js +254 -0
- package/lib/server/electron/loader.js +57 -0
- package/lib/server/errors.js +68 -0
- package/lib/server/fetch.js +611 -0
- package/lib/server/fileChooser.js +42 -0
- package/lib/server/fileUploadUtils.js +71 -0
- package/lib/server/firefox/ffAccessibility.js +215 -0
- package/lib/server/firefox/ffBrowser.js +447 -0
- package/lib/server/firefox/ffConnection.js +168 -0
- package/lib/server/firefox/ffExecutionContext.js +138 -0
- package/lib/server/firefox/ffInput.js +150 -0
- package/lib/server/firefox/ffNetworkManager.js +231 -0
- package/lib/server/firefox/ffPage.js +558 -0
- package/lib/server/firefox/firefox.js +91 -0
- package/lib/server/formData.js +75 -0
- package/lib/server/frameSelectors.js +171 -0
- package/lib/server/frames.js +1597 -0
- package/lib/server/har/harRecorder.js +139 -0
- package/lib/server/har/harTracer.js +539 -0
- package/lib/server/helper.js +103 -0
- package/lib/server/index.js +96 -0
- package/lib/server/input.js +301 -0
- package/lib/server/instrumentation.js +74 -0
- package/lib/server/isomorphic/utilityScriptSerializers.js +212 -0
- package/lib/server/javascript.js +305 -0
- package/lib/server/launchApp.js +90 -0
- package/lib/server/macEditingCommands.js +139 -0
- package/lib/server/network.js +607 -0
- package/lib/server/page.js +793 -0
- package/lib/server/pipeTransport.js +85 -0
- package/lib/server/playwright.js +82 -0
- package/lib/server/progress.js +102 -0
- package/lib/server/protocolError.js +49 -0
- package/lib/server/recorder/codeGenerator.js +153 -0
- package/lib/server/recorder/csharp.js +310 -0
- package/lib/server/recorder/java.js +216 -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 +275 -0
- package/lib/server/recorder/recorderActions.js +5 -0
- package/lib/server/recorder/recorderApp.js +181 -0
- package/lib/server/recorder/recorderUtils.js +48 -0
- package/lib/server/recorder/utils.js +45 -0
- package/lib/server/recorder.js +700 -0
- package/lib/server/registry/browserFetcher.js +168 -0
- package/lib/server/registry/dependencies.js +322 -0
- package/lib/server/registry/index.js +925 -0
- package/lib/server/registry/nativeDeps.js +383 -0
- package/lib/server/registry/oopDownloadBrowserMain.js +138 -0
- package/lib/server/screenshotter.js +354 -0
- package/lib/server/selectors.js +73 -0
- package/lib/server/socksInterceptor.js +100 -0
- package/lib/server/trace/recorder/snapshotter.js +168 -0
- package/lib/server/trace/recorder/snapshotterInjected.js +493 -0
- package/lib/server/trace/recorder/tracing.js +552 -0
- package/lib/server/trace/test/inMemorySnapshotter.js +93 -0
- package/lib/server/trace/viewer/traceViewer.js +229 -0
- package/lib/server/transport.js +191 -0
- package/lib/server/types.js +24 -0
- package/lib/server/usKeyboardLayout.js +555 -0
- package/lib/server/webkit/webkit.js +87 -0
- package/lib/server/webkit/wkAccessibility.js +194 -0
- package/lib/server/webkit/wkBrowser.js +328 -0
- package/lib/server/webkit/wkConnection.js +173 -0
- package/lib/server/webkit/wkExecutionContext.js +146 -0
- package/lib/server/webkit/wkInput.js +169 -0
- package/lib/server/webkit/wkInterceptableRequest.js +158 -0
- package/lib/server/webkit/wkPage.js +1198 -0
- package/lib/server/webkit/wkProvisionalPage.js +59 -0
- package/lib/server/webkit/wkWorkers.js +104 -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 +47 -0
- package/lib/utils/eventsHelper.js +38 -0
- package/lib/utils/fileUtils.js +66 -0
- package/lib/utils/glob.js +83 -0
- package/lib/utils/happy-eyeballs.js +154 -0
- package/lib/utils/headers.js +52 -0
- package/lib/utils/hostPlatform.js +124 -0
- package/lib/utils/httpServer.js +195 -0
- package/lib/utils/index.js +324 -0
- package/lib/utils/isomorphic/cssParser.js +250 -0
- package/lib/utils/isomorphic/cssTokenizer.js +979 -0
- package/lib/utils/isomorphic/locatorGenerators.js +651 -0
- package/lib/utils/isomorphic/locatorParser.js +179 -0
- package/lib/utils/isomorphic/locatorUtils.js +62 -0
- package/lib/utils/isomorphic/selectorParser.js +397 -0
- package/lib/utils/isomorphic/stringUtils.js +107 -0
- package/lib/utils/isomorphic/traceUtils.js +39 -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 +189 -0
- package/lib/utils/processLauncher.js +248 -0
- package/lib/utils/profiler.js +53 -0
- package/lib/utils/rtti.js +41 -0
- package/lib/utils/semaphore.js +51 -0
- package/lib/utils/spawnAsync.js +45 -0
- package/lib/utils/stackTrace.js +123 -0
- package/lib/utils/task.js +58 -0
- package/lib/utils/time.js +37 -0
- package/lib/utils/timeoutRunner.js +131 -0
- package/lib/utils/traceUtils.js +44 -0
- package/lib/utils/userAgent.js +105 -0
- package/lib/utils/wsServer.js +125 -0
- package/lib/utils/zipFile.js +75 -0
- package/lib/utils/zones.js +99 -0
- package/lib/utilsBundle.js +81 -0
- package/lib/utilsBundleImpl/index.js +51 -0
- package/lib/utilsBundleImpl/xdg-open +1066 -0
- package/lib/vite/htmlReport/index.html +66 -0
- package/lib/vite/recorder/assets/codeMirrorModule-Hs9-1ZG4.css +1 -0
- package/lib/vite/recorder/assets/codeMirrorModule-I9ks4y7D.js +24 -0
- package/lib/vite/recorder/assets/codicon-zGuYmc9o.ttf +0 -0
- package/lib/vite/recorder/assets/index-ljsTwXtJ.css +1 -0
- package/lib/vite/recorder/assets/index-yg8ypzl6.js +47 -0
- package/lib/vite/recorder/index.html +29 -0
- package/lib/vite/recorder/playwright-logo.svg +9 -0
- package/lib/vite/traceViewer/assets/codeMirrorModule-GluP1cQ1.js +24 -0
- package/lib/vite/traceViewer/assets/codeMirrorModule-fqJB1XDu.js +24 -0
- package/lib/vite/traceViewer/assets/codeMirrorModule-y3M3aAqy.js +24 -0
- package/lib/vite/traceViewer/assets/wsPort-Rvwd4WC-.js +69 -0
- package/lib/vite/traceViewer/assets/wsPort-dlD7vDkY.js +69 -0
- package/lib/vite/traceViewer/assets/wsPort-qOE2NWrO.js +69 -0
- package/lib/vite/traceViewer/assets/xtermModule-Yt6xwiJ_.js +9 -0
- package/lib/vite/traceViewer/codeMirrorModule.Hs9-1ZG4.css +1 -0
- package/lib/vite/traceViewer/codicon.zGuYmc9o.ttf +0 -0
- package/lib/vite/traceViewer/index.-g_5lMbJ.css +1 -0
- package/lib/vite/traceViewer/index.4X7zDysg.js +2 -0
- package/lib/vite/traceViewer/index.HkJgzlGy.js +2 -0
- package/lib/vite/traceViewer/index.html +26 -0
- package/lib/vite/traceViewer/index.kRjx5sAJ.js +2 -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 +4 -0
- package/lib/vite/traceViewer/uiMode.1Wcp_Kto.js +10 -0
- package/lib/vite/traceViewer/uiMode.GTNzARcV.js +10 -0
- package/lib/vite/traceViewer/uiMode.html +17 -0
- package/lib/vite/traceViewer/uiMode.pWy0Re7G.css +1 -0
- package/lib/vite/traceViewer/uiMode.zV-7Lf9v.js +10 -0
- package/lib/vite/traceViewer/wsPort.kSgQKQ0y.css +1 -0
- package/lib/vite/traceViewer/xtermModule.0lwXJFHT.css +32 -0
- package/lib/zipBundle.js +25 -0
- package/lib/zipBundleImpl.js +5 -0
- package/package.json +43 -0
- package/types/protocol.d.ts +20304 -0
- package/types/structs.d.ts +45 -0
- package/types/types.d.ts +20626 -0
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.JSHandle = void 0;
|
|
7
|
+
exports.assertMaxArguments = assertMaxArguments;
|
|
8
|
+
exports.parseResult = parseResult;
|
|
9
|
+
exports.serializeArgument = serializeArgument;
|
|
10
|
+
var _channelOwner = require("./channelOwner");
|
|
11
|
+
var _serializers = require("../protocol/serializers");
|
|
12
|
+
let _Symbol$asyncDispose;
|
|
13
|
+
/**
|
|
14
|
+
* Copyright (c) Microsoft Corporation.
|
|
15
|
+
*
|
|
16
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
17
|
+
* you may not use this file except in compliance with the License.
|
|
18
|
+
* You may obtain a copy of the License at
|
|
19
|
+
*
|
|
20
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
21
|
+
*
|
|
22
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
23
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
24
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
25
|
+
* See the License for the specific language governing permissions and
|
|
26
|
+
* limitations under the License.
|
|
27
|
+
*/
|
|
28
|
+
_Symbol$asyncDispose = Symbol.asyncDispose;
|
|
29
|
+
class JSHandle extends _channelOwner.ChannelOwner {
|
|
30
|
+
static from(handle) {
|
|
31
|
+
return handle._object;
|
|
32
|
+
}
|
|
33
|
+
constructor(parent, type, guid, initializer) {
|
|
34
|
+
super(parent, type, guid, initializer);
|
|
35
|
+
this._preview = void 0;
|
|
36
|
+
this._preview = this._initializer.preview;
|
|
37
|
+
this._channel.on('previewUpdated', ({
|
|
38
|
+
preview
|
|
39
|
+
}) => this._preview = preview);
|
|
40
|
+
}
|
|
41
|
+
async evaluate(pageFunction, arg) {
|
|
42
|
+
const result = await this._channel.evaluateExpression({
|
|
43
|
+
expression: String(pageFunction),
|
|
44
|
+
isFunction: typeof pageFunction === 'function',
|
|
45
|
+
arg: serializeArgument(arg)
|
|
46
|
+
});
|
|
47
|
+
return parseResult(result.value);
|
|
48
|
+
}
|
|
49
|
+
async evaluateHandle(pageFunction, arg) {
|
|
50
|
+
const result = await this._channel.evaluateExpressionHandle({
|
|
51
|
+
expression: String(pageFunction),
|
|
52
|
+
isFunction: typeof pageFunction === 'function',
|
|
53
|
+
arg: serializeArgument(arg)
|
|
54
|
+
});
|
|
55
|
+
return JSHandle.from(result.handle);
|
|
56
|
+
}
|
|
57
|
+
async getProperty(propertyName) {
|
|
58
|
+
const result = await this._channel.getProperty({
|
|
59
|
+
name: propertyName
|
|
60
|
+
});
|
|
61
|
+
return JSHandle.from(result.handle);
|
|
62
|
+
}
|
|
63
|
+
async getProperties() {
|
|
64
|
+
const map = new Map();
|
|
65
|
+
for (const {
|
|
66
|
+
name,
|
|
67
|
+
value
|
|
68
|
+
} of (await this._channel.getPropertyList()).properties) map.set(name, JSHandle.from(value));
|
|
69
|
+
return map;
|
|
70
|
+
}
|
|
71
|
+
async jsonValue() {
|
|
72
|
+
return parseResult((await this._channel.jsonValue()).value);
|
|
73
|
+
}
|
|
74
|
+
asElement() {
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
async [_Symbol$asyncDispose]() {
|
|
78
|
+
await this.dispose();
|
|
79
|
+
}
|
|
80
|
+
async dispose() {
|
|
81
|
+
return await this._channel.dispose();
|
|
82
|
+
}
|
|
83
|
+
async _objectCount() {
|
|
84
|
+
return await this._wrapApiCall(async () => {
|
|
85
|
+
const {
|
|
86
|
+
count
|
|
87
|
+
} = await this._channel.objectCount();
|
|
88
|
+
return count;
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
toString() {
|
|
92
|
+
return this._preview;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// This function takes care of converting all JSHandles to their channels,
|
|
97
|
+
// so that generic channel serializer converts them to guids.
|
|
98
|
+
exports.JSHandle = JSHandle;
|
|
99
|
+
function serializeArgument(arg) {
|
|
100
|
+
const handles = [];
|
|
101
|
+
const pushHandle = channel => {
|
|
102
|
+
handles.push(channel);
|
|
103
|
+
return handles.length - 1;
|
|
104
|
+
};
|
|
105
|
+
const value = (0, _serializers.serializeValue)(arg, value => {
|
|
106
|
+
if (value instanceof JSHandle) return {
|
|
107
|
+
h: pushHandle(value._channel)
|
|
108
|
+
};
|
|
109
|
+
return {
|
|
110
|
+
fallThrough: value
|
|
111
|
+
};
|
|
112
|
+
});
|
|
113
|
+
return {
|
|
114
|
+
value,
|
|
115
|
+
handles
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
function parseResult(value) {
|
|
119
|
+
return (0, _serializers.parseSerializedValue)(value, undefined);
|
|
120
|
+
}
|
|
121
|
+
function assertMaxArguments(count, max) {
|
|
122
|
+
if (count > max) throw new Error('Too many arguments. If you need to pass more than 1 argument to the function wrap them in an object.');
|
|
123
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.JsonPipe = void 0;
|
|
7
|
+
var _channelOwner = require("./channelOwner");
|
|
8
|
+
/**
|
|
9
|
+
* Copyright (c) Microsoft Corporation.
|
|
10
|
+
*
|
|
11
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
12
|
+
* you may not use this file except in compliance with the License.
|
|
13
|
+
* You may obtain a copy of the License at
|
|
14
|
+
*
|
|
15
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
16
|
+
*
|
|
17
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
18
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
19
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
20
|
+
* See the License for the specific language governing permissions and
|
|
21
|
+
* limitations under the License.
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
class JsonPipe extends _channelOwner.ChannelOwner {
|
|
25
|
+
static from(jsonPipe) {
|
|
26
|
+
return jsonPipe._object;
|
|
27
|
+
}
|
|
28
|
+
constructor(parent, type, guid, initializer) {
|
|
29
|
+
super(parent, type, guid, initializer);
|
|
30
|
+
}
|
|
31
|
+
channel() {
|
|
32
|
+
return this._channel;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.JsonPipe = JsonPipe;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.LocalUtils = void 0;
|
|
7
|
+
var _channelOwner = require("./channelOwner");
|
|
8
|
+
/**
|
|
9
|
+
* Copyright (c) Microsoft Corporation.
|
|
10
|
+
*
|
|
11
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
12
|
+
* you may not use this file except in compliance with the License.
|
|
13
|
+
* You may obtain a copy of the License at
|
|
14
|
+
*
|
|
15
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
16
|
+
*
|
|
17
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
18
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
19
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
20
|
+
* See the License for the specific language governing permissions and
|
|
21
|
+
* limitations under the License.
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
class LocalUtils extends _channelOwner.ChannelOwner {
|
|
25
|
+
constructor(parent, type, guid, initializer) {
|
|
26
|
+
super(parent, type, guid, initializer);
|
|
27
|
+
this.devices = void 0;
|
|
28
|
+
this.devices = {};
|
|
29
|
+
for (const {
|
|
30
|
+
name,
|
|
31
|
+
descriptor
|
|
32
|
+
} of initializer.deviceDescriptors) this.devices[name] = descriptor;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.LocalUtils = LocalUtils;
|
|
@@ -0,0 +1,432 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Locator = exports.FrameLocator = void 0;
|
|
7
|
+
exports.setTestIdAttribute = setTestIdAttribute;
|
|
8
|
+
exports.testIdAttributeName = testIdAttributeName;
|
|
9
|
+
var util = _interopRequireWildcard(require("util"));
|
|
10
|
+
var _utils = require("../utils");
|
|
11
|
+
var _elementHandle = require("./elementHandle");
|
|
12
|
+
var _jsHandle = require("./jsHandle");
|
|
13
|
+
var _stringUtils = require("../utils/isomorphic/stringUtils");
|
|
14
|
+
var _locatorUtils = require("../utils/isomorphic/locatorUtils");
|
|
15
|
+
let _util$inspect$custom;
|
|
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
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
32
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
33
|
+
_util$inspect$custom = util.inspect.custom;
|
|
34
|
+
class Locator {
|
|
35
|
+
constructor(frame, selector, options) {
|
|
36
|
+
this._frame = void 0;
|
|
37
|
+
this._selector = void 0;
|
|
38
|
+
this._frame = frame;
|
|
39
|
+
this._selector = selector;
|
|
40
|
+
if (options !== null && options !== void 0 && options.hasText) this._selector += ` >> internal:has-text=${(0, _stringUtils.escapeForTextSelector)(options.hasText, false)}`;
|
|
41
|
+
if (options !== null && options !== void 0 && options.hasNotText) this._selector += ` >> internal:has-not-text=${(0, _stringUtils.escapeForTextSelector)(options.hasNotText, false)}`;
|
|
42
|
+
if (options !== null && options !== void 0 && options.has) {
|
|
43
|
+
const locator = options.has;
|
|
44
|
+
if (locator._frame !== frame) throw new Error(`Inner "has" locator must belong to the same frame.`);
|
|
45
|
+
this._selector += ` >> internal:has=` + JSON.stringify(locator._selector);
|
|
46
|
+
}
|
|
47
|
+
if (options !== null && options !== void 0 && options.hasNot) {
|
|
48
|
+
const locator = options.hasNot;
|
|
49
|
+
if (locator._frame !== frame) throw new Error(`Inner "hasNot" locator must belong to the same frame.`);
|
|
50
|
+
this._selector += ` >> internal:has-not=` + JSON.stringify(locator._selector);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
async _withElement(task, timeout) {
|
|
54
|
+
timeout = this._frame.page()._timeoutSettings.timeout({
|
|
55
|
+
timeout
|
|
56
|
+
});
|
|
57
|
+
const deadline = timeout ? (0, _utils.monotonicTime)() + timeout : 0;
|
|
58
|
+
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`);
|
|
67
|
+
try {
|
|
68
|
+
return await task(handle, deadline ? deadline - (0, _utils.monotonicTime)() : 0);
|
|
69
|
+
} finally {
|
|
70
|
+
await handle.dispose();
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
page() {
|
|
75
|
+
return this._frame.page();
|
|
76
|
+
}
|
|
77
|
+
async boundingBox(options) {
|
|
78
|
+
return await this._withElement(h => h.boundingBox(), options === null || options === void 0 ? void 0 : options.timeout);
|
|
79
|
+
}
|
|
80
|
+
async check(options = {}) {
|
|
81
|
+
return await this._frame.check(this._selector, {
|
|
82
|
+
strict: true,
|
|
83
|
+
...options
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
async click(options = {}) {
|
|
87
|
+
return await this._frame.click(this._selector, {
|
|
88
|
+
strict: true,
|
|
89
|
+
...options
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
async dblclick(options = {}) {
|
|
93
|
+
return await this._frame.dblclick(this._selector, {
|
|
94
|
+
strict: true,
|
|
95
|
+
...options
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
async dispatchEvent(type, eventInit = {}, options) {
|
|
99
|
+
return await this._frame.dispatchEvent(this._selector, type, eventInit, {
|
|
100
|
+
strict: true,
|
|
101
|
+
...options
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
async dragTo(target, options = {}) {
|
|
105
|
+
return await this._frame.dragAndDrop(this._selector, target._selector, {
|
|
106
|
+
strict: true,
|
|
107
|
+
...options
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
async evaluate(pageFunction, arg, options) {
|
|
111
|
+
return await this._withElement(h => h.evaluate(pageFunction, arg), options === null || options === void 0 ? void 0 : options.timeout);
|
|
112
|
+
}
|
|
113
|
+
async evaluateAll(pageFunction, arg) {
|
|
114
|
+
return await this._frame.$$eval(this._selector, pageFunction, arg);
|
|
115
|
+
}
|
|
116
|
+
async evaluateHandle(pageFunction, arg, options) {
|
|
117
|
+
return await this._withElement(h => h.evaluateHandle(pageFunction, arg), options === null || options === void 0 ? void 0 : options.timeout);
|
|
118
|
+
}
|
|
119
|
+
async fill(value, options = {}) {
|
|
120
|
+
return await this._frame.fill(this._selector, value, {
|
|
121
|
+
strict: true,
|
|
122
|
+
...options
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
async clear(options = {}) {
|
|
126
|
+
return await this.fill('', options);
|
|
127
|
+
}
|
|
128
|
+
async _highlight() {
|
|
129
|
+
// VS Code extension uses this one, keep it for now.
|
|
130
|
+
return await this._frame._highlight(this._selector);
|
|
131
|
+
}
|
|
132
|
+
async highlight() {
|
|
133
|
+
return await this._frame._highlight(this._selector);
|
|
134
|
+
}
|
|
135
|
+
locator(selectorOrLocator, options) {
|
|
136
|
+
if ((0, _utils.isString)(selectorOrLocator)) return new Locator(this._frame, this._selector + ' >> ' + selectorOrLocator, options);
|
|
137
|
+
if (selectorOrLocator._frame !== this._frame) throw new Error(`Locators must belong to the same frame.`);
|
|
138
|
+
return new Locator(this._frame, this._selector + ' >> internal:chain=' + JSON.stringify(selectorOrLocator._selector), options);
|
|
139
|
+
}
|
|
140
|
+
getByTestId(testId) {
|
|
141
|
+
return this.locator((0, _locatorUtils.getByTestIdSelector)(testIdAttributeName(), testId));
|
|
142
|
+
}
|
|
143
|
+
getByAltText(text, options) {
|
|
144
|
+
return this.locator((0, _locatorUtils.getByAltTextSelector)(text, options));
|
|
145
|
+
}
|
|
146
|
+
getByLabel(text, options) {
|
|
147
|
+
return this.locator((0, _locatorUtils.getByLabelSelector)(text, options));
|
|
148
|
+
}
|
|
149
|
+
getByPlaceholder(text, options) {
|
|
150
|
+
return this.locator((0, _locatorUtils.getByPlaceholderSelector)(text, options));
|
|
151
|
+
}
|
|
152
|
+
getByText(text, options) {
|
|
153
|
+
return this.locator((0, _locatorUtils.getByTextSelector)(text, options));
|
|
154
|
+
}
|
|
155
|
+
getByTitle(text, options) {
|
|
156
|
+
return this.locator((0, _locatorUtils.getByTitleSelector)(text, options));
|
|
157
|
+
}
|
|
158
|
+
getByRole(role, options = {}) {
|
|
159
|
+
return this.locator((0, _locatorUtils.getByRoleSelector)(role, options));
|
|
160
|
+
}
|
|
161
|
+
frameLocator(selector) {
|
|
162
|
+
return new FrameLocator(this._frame, this._selector + ' >> ' + selector);
|
|
163
|
+
}
|
|
164
|
+
filter(options) {
|
|
165
|
+
return new Locator(this._frame, this._selector, options);
|
|
166
|
+
}
|
|
167
|
+
async elementHandle(options) {
|
|
168
|
+
return await this._frame.waitForSelector(this._selector, {
|
|
169
|
+
strict: true,
|
|
170
|
+
state: 'attached',
|
|
171
|
+
...options
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
async elementHandles() {
|
|
175
|
+
return await this._frame.$$(this._selector);
|
|
176
|
+
}
|
|
177
|
+
first() {
|
|
178
|
+
return new Locator(this._frame, this._selector + ' >> nth=0');
|
|
179
|
+
}
|
|
180
|
+
last() {
|
|
181
|
+
return new Locator(this._frame, this._selector + ` >> nth=-1`);
|
|
182
|
+
}
|
|
183
|
+
nth(index) {
|
|
184
|
+
return new Locator(this._frame, this._selector + ` >> nth=${index}`);
|
|
185
|
+
}
|
|
186
|
+
and(locator) {
|
|
187
|
+
if (locator._frame !== this._frame) throw new Error(`Locators must belong to the same frame.`);
|
|
188
|
+
return new Locator(this._frame, this._selector + ` >> internal:and=` + JSON.stringify(locator._selector));
|
|
189
|
+
}
|
|
190
|
+
or(locator) {
|
|
191
|
+
if (locator._frame !== this._frame) throw new Error(`Locators must belong to the same frame.`);
|
|
192
|
+
return new Locator(this._frame, this._selector + ` >> internal:or=` + JSON.stringify(locator._selector));
|
|
193
|
+
}
|
|
194
|
+
async focus(options) {
|
|
195
|
+
return await this._frame.focus(this._selector, {
|
|
196
|
+
strict: true,
|
|
197
|
+
...options
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
async blur(options) {
|
|
201
|
+
await this._frame._channel.blur({
|
|
202
|
+
selector: this._selector,
|
|
203
|
+
strict: true,
|
|
204
|
+
...options
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
async count() {
|
|
208
|
+
return await this._frame._queryCount(this._selector);
|
|
209
|
+
}
|
|
210
|
+
async getAttribute(name, options) {
|
|
211
|
+
return await this._frame.getAttribute(this._selector, name, {
|
|
212
|
+
strict: true,
|
|
213
|
+
...options
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
async hover(options = {}) {
|
|
217
|
+
return await this._frame.hover(this._selector, {
|
|
218
|
+
strict: true,
|
|
219
|
+
...options
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
async innerHTML(options) {
|
|
223
|
+
return await this._frame.innerHTML(this._selector, {
|
|
224
|
+
strict: true,
|
|
225
|
+
...options
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
async innerText(options) {
|
|
229
|
+
return await this._frame.innerText(this._selector, {
|
|
230
|
+
strict: true,
|
|
231
|
+
...options
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
async inputValue(options) {
|
|
235
|
+
return await this._frame.inputValue(this._selector, {
|
|
236
|
+
strict: true,
|
|
237
|
+
...options
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
async isChecked(options) {
|
|
241
|
+
return await this._frame.isChecked(this._selector, {
|
|
242
|
+
strict: true,
|
|
243
|
+
...options
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
async isDisabled(options) {
|
|
247
|
+
return await this._frame.isDisabled(this._selector, {
|
|
248
|
+
strict: true,
|
|
249
|
+
...options
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
async isEditable(options) {
|
|
253
|
+
return await this._frame.isEditable(this._selector, {
|
|
254
|
+
strict: true,
|
|
255
|
+
...options
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
async isEnabled(options) {
|
|
259
|
+
return await this._frame.isEnabled(this._selector, {
|
|
260
|
+
strict: true,
|
|
261
|
+
...options
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
async isHidden(options) {
|
|
265
|
+
return await this._frame.isHidden(this._selector, {
|
|
266
|
+
strict: true,
|
|
267
|
+
...options
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
async isVisible(options) {
|
|
271
|
+
return await this._frame.isVisible(this._selector, {
|
|
272
|
+
strict: true,
|
|
273
|
+
...options
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
async press(key, options = {}) {
|
|
277
|
+
return await this._frame.press(this._selector, key, {
|
|
278
|
+
strict: true,
|
|
279
|
+
...options
|
|
280
|
+
});
|
|
281
|
+
}
|
|
282
|
+
async screenshot(options = {}) {
|
|
283
|
+
return await this._withElement((h, timeout) => h.screenshot({
|
|
284
|
+
...options,
|
|
285
|
+
timeout
|
|
286
|
+
}), options.timeout);
|
|
287
|
+
}
|
|
288
|
+
async scrollIntoViewIfNeeded(options = {}) {
|
|
289
|
+
return await this._withElement((h, timeout) => h.scrollIntoViewIfNeeded({
|
|
290
|
+
...options,
|
|
291
|
+
timeout
|
|
292
|
+
}), options.timeout);
|
|
293
|
+
}
|
|
294
|
+
async selectOption(values, options = {}) {
|
|
295
|
+
return await this._frame.selectOption(this._selector, values, {
|
|
296
|
+
strict: true,
|
|
297
|
+
...options
|
|
298
|
+
});
|
|
299
|
+
}
|
|
300
|
+
async selectText(options = {}) {
|
|
301
|
+
return await this._withElement((h, timeout) => h.selectText({
|
|
302
|
+
...options,
|
|
303
|
+
timeout
|
|
304
|
+
}), options.timeout);
|
|
305
|
+
}
|
|
306
|
+
async setChecked(checked, options) {
|
|
307
|
+
if (checked) await this.check(options);else await this.uncheck(options);
|
|
308
|
+
}
|
|
309
|
+
async setInputFiles(files, options = {}) {
|
|
310
|
+
return await this._frame.setInputFiles(this._selector, files, {
|
|
311
|
+
strict: true,
|
|
312
|
+
...options
|
|
313
|
+
});
|
|
314
|
+
}
|
|
315
|
+
async tap(options = {}) {
|
|
316
|
+
return await this._frame.tap(this._selector, {
|
|
317
|
+
strict: true,
|
|
318
|
+
...options
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
async textContent(options) {
|
|
322
|
+
return await this._frame.textContent(this._selector, {
|
|
323
|
+
strict: true,
|
|
324
|
+
...options
|
|
325
|
+
});
|
|
326
|
+
}
|
|
327
|
+
async type(text, options = {}) {
|
|
328
|
+
return await this._frame.type(this._selector, text, {
|
|
329
|
+
strict: true,
|
|
330
|
+
...options
|
|
331
|
+
});
|
|
332
|
+
}
|
|
333
|
+
async pressSequentially(text, options = {}) {
|
|
334
|
+
return await this.type(text, options);
|
|
335
|
+
}
|
|
336
|
+
async uncheck(options = {}) {
|
|
337
|
+
return await this._frame.uncheck(this._selector, {
|
|
338
|
+
strict: true,
|
|
339
|
+
...options
|
|
340
|
+
});
|
|
341
|
+
}
|
|
342
|
+
async all() {
|
|
343
|
+
return new Array(await this.count()).fill(0).map((e, i) => this.nth(i));
|
|
344
|
+
}
|
|
345
|
+
async allInnerTexts() {
|
|
346
|
+
return await this._frame.$$eval(this._selector, ee => ee.map(e => e.innerText));
|
|
347
|
+
}
|
|
348
|
+
async allTextContents() {
|
|
349
|
+
return await this._frame.$$eval(this._selector, ee => ee.map(e => e.textContent || ''));
|
|
350
|
+
}
|
|
351
|
+
async waitFor(options) {
|
|
352
|
+
await this._frame._channel.waitForSelector({
|
|
353
|
+
selector: this._selector,
|
|
354
|
+
strict: true,
|
|
355
|
+
omitReturnValue: true,
|
|
356
|
+
...options
|
|
357
|
+
});
|
|
358
|
+
}
|
|
359
|
+
async _expect(expression, options) {
|
|
360
|
+
const params = {
|
|
361
|
+
selector: this._selector,
|
|
362
|
+
expression,
|
|
363
|
+
...options,
|
|
364
|
+
isNot: !!options.isNot
|
|
365
|
+
};
|
|
366
|
+
params.expectedValue = (0, _jsHandle.serializeArgument)(options.expectedValue);
|
|
367
|
+
const result = await this._frame._channel.expect(params);
|
|
368
|
+
if (result.received !== undefined) result.received = (0, _jsHandle.parseResult)(result.received);
|
|
369
|
+
return result;
|
|
370
|
+
}
|
|
371
|
+
[_util$inspect$custom]() {
|
|
372
|
+
return this.toString();
|
|
373
|
+
}
|
|
374
|
+
toString() {
|
|
375
|
+
return (0, _utils.asLocator)('javascript', this._selector);
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
exports.Locator = Locator;
|
|
379
|
+
class FrameLocator {
|
|
380
|
+
constructor(frame, selector) {
|
|
381
|
+
this._frame = void 0;
|
|
382
|
+
this._frameSelector = void 0;
|
|
383
|
+
this._frame = frame;
|
|
384
|
+
this._frameSelector = selector;
|
|
385
|
+
}
|
|
386
|
+
locator(selectorOrLocator, options) {
|
|
387
|
+
if ((0, _utils.isString)(selectorOrLocator)) return new Locator(this._frame, this._frameSelector + ' >> internal:control=enter-frame >> ' + selectorOrLocator, options);
|
|
388
|
+
if (selectorOrLocator._frame !== this._frame) throw new Error(`Locators must belong to the same frame.`);
|
|
389
|
+
return new Locator(this._frame, this._frameSelector + ' >> internal:control=enter-frame >> ' + selectorOrLocator._selector, options);
|
|
390
|
+
}
|
|
391
|
+
getByTestId(testId) {
|
|
392
|
+
return this.locator((0, _locatorUtils.getByTestIdSelector)(testIdAttributeName(), testId));
|
|
393
|
+
}
|
|
394
|
+
getByAltText(text, options) {
|
|
395
|
+
return this.locator((0, _locatorUtils.getByAltTextSelector)(text, options));
|
|
396
|
+
}
|
|
397
|
+
getByLabel(text, options) {
|
|
398
|
+
return this.locator((0, _locatorUtils.getByLabelSelector)(text, options));
|
|
399
|
+
}
|
|
400
|
+
getByPlaceholder(text, options) {
|
|
401
|
+
return this.locator((0, _locatorUtils.getByPlaceholderSelector)(text, options));
|
|
402
|
+
}
|
|
403
|
+
getByText(text, options) {
|
|
404
|
+
return this.locator((0, _locatorUtils.getByTextSelector)(text, options));
|
|
405
|
+
}
|
|
406
|
+
getByTitle(text, options) {
|
|
407
|
+
return this.locator((0, _locatorUtils.getByTitleSelector)(text, options));
|
|
408
|
+
}
|
|
409
|
+
getByRole(role, options = {}) {
|
|
410
|
+
return this.locator((0, _locatorUtils.getByRoleSelector)(role, options));
|
|
411
|
+
}
|
|
412
|
+
frameLocator(selector) {
|
|
413
|
+
return new FrameLocator(this._frame, this._frameSelector + ' >> internal:control=enter-frame >> ' + selector);
|
|
414
|
+
}
|
|
415
|
+
first() {
|
|
416
|
+
return new FrameLocator(this._frame, this._frameSelector + ' >> nth=0');
|
|
417
|
+
}
|
|
418
|
+
last() {
|
|
419
|
+
return new FrameLocator(this._frame, this._frameSelector + ` >> nth=-1`);
|
|
420
|
+
}
|
|
421
|
+
nth(index) {
|
|
422
|
+
return new FrameLocator(this._frame, this._frameSelector + ` >> nth=${index}`);
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
exports.FrameLocator = FrameLocator;
|
|
426
|
+
let _testIdAttributeName = 'data-testid';
|
|
427
|
+
function testIdAttributeName() {
|
|
428
|
+
return _testIdAttributeName;
|
|
429
|
+
}
|
|
430
|
+
function setTestIdAttribute(attributeName) {
|
|
431
|
+
_testIdAttributeName = attributeName;
|
|
432
|
+
}
|