1 | import { fileURLToPath } from 'node:url';
|
2 | import { dirname, resolve } from 'node:path';
|
3 | import { createRequire } from 'node:module';
|
4 | import { UNICODE_CHARACTERS, HOOK_DEFINITION } from '@wdio/utils';
|
5 | export var SupportedAutomationProtocols;
|
6 | (function (SupportedAutomationProtocols) {
|
7 | SupportedAutomationProtocols["webdriver"] = "webdriver";
|
8 | SupportedAutomationProtocols["devtools"] = "devtools";
|
9 | SupportedAutomationProtocols["stub"] = "./protocol-stub.js";
|
10 | })(SupportedAutomationProtocols || (SupportedAutomationProtocols = {}));
|
11 | export const WDIO_DEFAULTS = {
|
12 | |
13 |
|
14 |
|
15 | automationProtocol: {
|
16 | type: 'string',
|
17 | default: SupportedAutomationProtocols.webdriver,
|
18 | validate: (param) => {
|
19 | |
20 |
|
21 |
|
22 | if (param.endsWith('driver.js')) {
|
23 | return;
|
24 | }
|
25 | if (!Object.values(SupportedAutomationProtocols).includes(param.toLowerCase())) {
|
26 | throw new Error(`Currently only "webdriver" and "devtools" is supported as automationProtocol, you set "${param}"`);
|
27 | }
|
28 | try {
|
29 | const __dirname = dirname(fileURLToPath(import.meta.url));
|
30 | const require = createRequire(import.meta.url);
|
31 | const id = param === SupportedAutomationProtocols.stub
|
32 | ? resolve(__dirname, '..', 'build', param)
|
33 | : param;
|
34 | require.resolve(id);
|
35 | }
|
36 | catch (err) {
|
37 |
|
38 | throw new Error('Automation protocol package is not installed!\n' +
|
39 | `Please install it via \`npm install ${param}\``);
|
40 | }
|
41 | }
|
42 | },
|
43 | |
44 |
|
45 |
|
46 | capabilities: {
|
47 | type: 'object',
|
48 | validate: (param) => {
|
49 | |
50 |
|
51 |
|
52 | if (typeof param === 'object') {
|
53 | return true;
|
54 | }
|
55 | throw new Error('the "capabilities" options needs to be an object or a list of objects');
|
56 | },
|
57 | required: true
|
58 | },
|
59 | |
60 |
|
61 |
|
62 | baseUrl: {
|
63 | type: 'string'
|
64 | },
|
65 | |
66 |
|
67 |
|
68 | waitforInterval: {
|
69 | type: 'number',
|
70 | default: 500
|
71 | },
|
72 | |
73 |
|
74 |
|
75 | waitforTimeout: {
|
76 | type: 'number',
|
77 | default: 5000
|
78 | },
|
79 | |
80 |
|
81 |
|
82 | onReload: HOOK_DEFINITION,
|
83 | beforeCommand: HOOK_DEFINITION,
|
84 | afterCommand: HOOK_DEFINITION
|
85 | };
|
86 | export const W3C_SELECTOR_STRATEGIES = ['css selector', 'link text', 'partial link text', 'tag name', 'xpath'];
|
87 | export const DRIVER_DEFAULT_ENDPOINT = {
|
88 | method: 'GET',
|
89 | host: 'localhost',
|
90 | port: 4444,
|
91 | path: '/status'
|
92 | };
|
93 | export const FF_REMOTE_DEBUG_ARG = '-remote-debugging-port';
|
94 | export const DEEP_SELECTOR = '>>>';
|
95 | export const ARIA_SELECTOR = 'aria/';
|
96 | export const ERROR_REASON = [
|
97 | 'Failed', 'Aborted', 'TimedOut', 'AccessDenied', 'ConnectionClosed',
|
98 | 'ConnectionReset', 'ConnectionRefused', 'ConnectionAborted',
|
99 | 'ConnectionFailed', 'NameNotResolved', 'InternetDisconnected',
|
100 | 'AddressUnreachable', 'BlockedByClient', 'BlockedByResponse'
|
101 | ];
|
102 |
|
103 |
|
104 |
|
105 | export const Key = {
|
106 | |
107 |
|
108 |
|
109 |
|
110 | Ctrl: 'WDIO_CONTROL',
|
111 | NULL: UNICODE_CHARACTERS.NULL,
|
112 | Cancel: UNICODE_CHARACTERS.Cancel,
|
113 | Help: UNICODE_CHARACTERS.Help,
|
114 | Backspace: UNICODE_CHARACTERS.Backspace,
|
115 | Tab: UNICODE_CHARACTERS.Tab,
|
116 | Clear: UNICODE_CHARACTERS.Clear,
|
117 | Return: UNICODE_CHARACTERS.Return,
|
118 | Enter: UNICODE_CHARACTERS.Enter,
|
119 | Shift: UNICODE_CHARACTERS.Shift,
|
120 | Control: UNICODE_CHARACTERS.Control,
|
121 | Alt: UNICODE_CHARACTERS.Alt,
|
122 | Pause: UNICODE_CHARACTERS.Pause,
|
123 | Escape: UNICODE_CHARACTERS.Escape,
|
124 | Space: UNICODE_CHARACTERS.Space,
|
125 | PageUp: UNICODE_CHARACTERS.PageUp,
|
126 | PageDown: UNICODE_CHARACTERS.PageDown,
|
127 | End: UNICODE_CHARACTERS.End,
|
128 | Home: UNICODE_CHARACTERS.Home,
|
129 | ArrowLeft: UNICODE_CHARACTERS.ArrowLeft,
|
130 | ArrowUp: UNICODE_CHARACTERS.ArrowUp,
|
131 | ArrowRight: UNICODE_CHARACTERS.ArrowRight,
|
132 | ArrowDown: UNICODE_CHARACTERS.ArrowDown,
|
133 | Insert: UNICODE_CHARACTERS.Insert,
|
134 | Delete: UNICODE_CHARACTERS.Delete,
|
135 | Semicolon: UNICODE_CHARACTERS.Semicolon,
|
136 | Equals: UNICODE_CHARACTERS.Equals,
|
137 | Numpad0: UNICODE_CHARACTERS['Numpad 0'],
|
138 | Numpad1: UNICODE_CHARACTERS['Numpad 1'],
|
139 | Numpad2: UNICODE_CHARACTERS['Numpad 2'],
|
140 | Numpad3: UNICODE_CHARACTERS['Numpad 3'],
|
141 | Numpad4: UNICODE_CHARACTERS['Numpad 4'],
|
142 | Numpad5: UNICODE_CHARACTERS['Numpad 5'],
|
143 | Numpad6: UNICODE_CHARACTERS['Numpad 6'],
|
144 | Numpad7: UNICODE_CHARACTERS['Numpad 7'],
|
145 | Numpad8: UNICODE_CHARACTERS['Numpad 8'],
|
146 | Numpad9: UNICODE_CHARACTERS['Numpad 9'],
|
147 | Multiply: UNICODE_CHARACTERS.Multiply,
|
148 | Add: UNICODE_CHARACTERS.Add,
|
149 | Separator: UNICODE_CHARACTERS.Separator,
|
150 | Subtract: UNICODE_CHARACTERS.Subtract,
|
151 | Decimal: UNICODE_CHARACTERS.Decimal,
|
152 | Divide: UNICODE_CHARACTERS.Divide,
|
153 | F1: UNICODE_CHARACTERS.F1,
|
154 | F2: UNICODE_CHARACTERS.F2,
|
155 | F3: UNICODE_CHARACTERS.F3,
|
156 | F4: UNICODE_CHARACTERS.F4,
|
157 | F5: UNICODE_CHARACTERS.F5,
|
158 | F6: UNICODE_CHARACTERS.F6,
|
159 | F7: UNICODE_CHARACTERS.F7,
|
160 | F8: UNICODE_CHARACTERS.F8,
|
161 | F9: UNICODE_CHARACTERS.F9,
|
162 | F10: UNICODE_CHARACTERS.F10,
|
163 | F11: UNICODE_CHARACTERS.F11,
|
164 | F12: UNICODE_CHARACTERS.F12,
|
165 | Command: UNICODE_CHARACTERS.Command,
|
166 | ZenkakuHankaku: UNICODE_CHARACTERS.ZenkakuHankaku
|
167 | };
|