@midscene/webdriver 0.30.10 → 1.0.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/dist/es/index.mjs +7 -8
- package/dist/lib/index.js +12 -13
- package/package.json +5 -4
package/dist/es/index.mjs
CHANGED
|
@@ -91,14 +91,14 @@ class WDAManager extends BaseServiceManager {
|
|
|
91
91
|
if (await this.isWDARunning()) return void debugWDA(`WebDriverAgent is already running on port ${this.config.port}`);
|
|
92
92
|
throw new Error(`WebDriverAgent is not running on ${this.config.host}:${this.config.port}. Please start WebDriverAgent manually:
|
|
93
93
|
|
|
94
|
-
|
|
94
|
+
🔧 Setup Instructions:
|
|
95
95
|
1. Install WebDriverAgent: npm install appium-webdriveragent
|
|
96
96
|
2. Build and run WebDriverAgent:
|
|
97
97
|
- For simulators: Use Xcode to run WebDriverAgentRunner on your target simulator
|
|
98
98
|
- For real devices: Build WebDriverAgentRunner and install on your device
|
|
99
99
|
3. Ensure WebDriverAgent is listening on ${this.config.host}:${this.config.port}
|
|
100
100
|
|
|
101
|
-
|
|
101
|
+
💡 Alternative: You can also specify a different host/port where WebDriverAgent is running.`);
|
|
102
102
|
}
|
|
103
103
|
async isWDARunning() {
|
|
104
104
|
try {
|
|
@@ -173,13 +173,13 @@ async function makeWebDriverRequest(baseUrl, method, endpoint, data, timeout = 3
|
|
|
173
173
|
clearTimeout(timeoutId);
|
|
174
174
|
let responseData;
|
|
175
175
|
const contentType = response.headers.get('content-type');
|
|
176
|
-
if (
|
|
176
|
+
if (contentType?.includes('application/json')) responseData = await response.json();
|
|
177
177
|
else {
|
|
178
178
|
const textData = await response.text();
|
|
179
179
|
responseData = textData;
|
|
180
180
|
}
|
|
181
181
|
if (!response.ok) {
|
|
182
|
-
const errorMessage =
|
|
182
|
+
const errorMessage = responseData?.error || responseData?.message || `HTTP ${response.status}`;
|
|
183
183
|
throw new WebDriverRequestError(`WebDriver request failed: ${errorMessage}`, response.status, responseData);
|
|
184
184
|
}
|
|
185
185
|
return responseData;
|
|
@@ -212,7 +212,6 @@ class WebDriverClient {
|
|
|
212
212
|
}
|
|
213
213
|
async createSession(capabilities) {
|
|
214
214
|
try {
|
|
215
|
-
var _response_value, _response_value1;
|
|
216
215
|
const response = await this.makeRequest('POST', '/session', {
|
|
217
216
|
capabilities: {
|
|
218
217
|
alwaysMatch: {
|
|
@@ -220,12 +219,12 @@ class WebDriverClient {
|
|
|
220
219
|
}
|
|
221
220
|
}
|
|
222
221
|
});
|
|
223
|
-
this.sessionId = response.sessionId ||
|
|
222
|
+
this.sessionId = response.sessionId || response.value?.sessionId;
|
|
224
223
|
if (!this.sessionId) throw new Error('Failed to get session ID from response');
|
|
225
224
|
debugClient(`Created session: ${this.sessionId}`);
|
|
226
225
|
return {
|
|
227
226
|
sessionId: this.sessionId,
|
|
228
|
-
capabilities: response.capabilities ||
|
|
227
|
+
capabilities: response.capabilities || response.value?.capabilities || {}
|
|
229
228
|
};
|
|
230
229
|
} catch (error) {
|
|
231
230
|
debugClient(`Failed to create session: ${error}`);
|
|
@@ -260,7 +259,7 @@ class WebDriverClient {
|
|
|
260
259
|
async getDeviceInfo() {
|
|
261
260
|
try {
|
|
262
261
|
const statusResponse = await this.makeRequest('GET', '/status');
|
|
263
|
-
if (
|
|
262
|
+
if (statusResponse?.device) return {
|
|
264
263
|
udid: statusResponse.device.udid || statusResponse.device.identifier || '',
|
|
265
264
|
name: statusResponse.device.name || '',
|
|
266
265
|
model: statusResponse.device.model || statusResponse.device.productName || ''
|
package/dist/lib/index.js
CHANGED
|
@@ -24,11 +24,11 @@ var __webpack_require__ = {};
|
|
|
24
24
|
var __webpack_exports__ = {};
|
|
25
25
|
__webpack_require__.r(__webpack_exports__);
|
|
26
26
|
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
-
WebDriverRequestError: ()=>WebDriverRequestError,
|
|
28
27
|
WDAManager: ()=>WDAManager,
|
|
28
|
+
makeWebDriverRequest: ()=>makeWebDriverRequest,
|
|
29
|
+
WebDriverRequestError: ()=>WebDriverRequestError,
|
|
29
30
|
WebDriverClient: ()=>WebDriverClient,
|
|
30
|
-
BaseServiceManager: ()=>BaseServiceManager
|
|
31
|
-
makeWebDriverRequest: ()=>makeWebDriverRequest
|
|
31
|
+
BaseServiceManager: ()=>BaseServiceManager
|
|
32
32
|
});
|
|
33
33
|
function _define_property(obj, key, value) {
|
|
34
34
|
if (key in obj) Object.defineProperty(obj, key, {
|
|
@@ -123,14 +123,14 @@ class WDAManager extends BaseServiceManager {
|
|
|
123
123
|
if (await this.isWDARunning()) return void debugWDA(`WebDriverAgent is already running on port ${this.config.port}`);
|
|
124
124
|
throw new Error(`WebDriverAgent is not running on ${this.config.host}:${this.config.port}. Please start WebDriverAgent manually:
|
|
125
125
|
|
|
126
|
-
|
|
126
|
+
🔧 Setup Instructions:
|
|
127
127
|
1. Install WebDriverAgent: npm install appium-webdriveragent
|
|
128
128
|
2. Build and run WebDriverAgent:
|
|
129
129
|
- For simulators: Use Xcode to run WebDriverAgentRunner on your target simulator
|
|
130
130
|
- For real devices: Build WebDriverAgentRunner and install on your device
|
|
131
131
|
3. Ensure WebDriverAgent is listening on ${this.config.host}:${this.config.port}
|
|
132
132
|
|
|
133
|
-
|
|
133
|
+
💡 Alternative: You can also specify a different host/port where WebDriverAgent is running.`);
|
|
134
134
|
}
|
|
135
135
|
async isWDARunning() {
|
|
136
136
|
try {
|
|
@@ -205,13 +205,13 @@ async function makeWebDriverRequest(baseUrl, method, endpoint, data, timeout = 3
|
|
|
205
205
|
clearTimeout(timeoutId);
|
|
206
206
|
let responseData;
|
|
207
207
|
const contentType = response.headers.get('content-type');
|
|
208
|
-
if (
|
|
208
|
+
if (contentType?.includes('application/json')) responseData = await response.json();
|
|
209
209
|
else {
|
|
210
210
|
const textData = await response.text();
|
|
211
211
|
responseData = textData;
|
|
212
212
|
}
|
|
213
213
|
if (!response.ok) {
|
|
214
|
-
const errorMessage =
|
|
214
|
+
const errorMessage = responseData?.error || responseData?.message || `HTTP ${response.status}`;
|
|
215
215
|
throw new WebDriverRequestError(`WebDriver request failed: ${errorMessage}`, response.status, responseData);
|
|
216
216
|
}
|
|
217
217
|
return responseData;
|
|
@@ -244,7 +244,6 @@ class WebDriverClient {
|
|
|
244
244
|
}
|
|
245
245
|
async createSession(capabilities) {
|
|
246
246
|
try {
|
|
247
|
-
var _response_value, _response_value1;
|
|
248
247
|
const response = await this.makeRequest('POST', '/session', {
|
|
249
248
|
capabilities: {
|
|
250
249
|
alwaysMatch: {
|
|
@@ -252,12 +251,12 @@ class WebDriverClient {
|
|
|
252
251
|
}
|
|
253
252
|
}
|
|
254
253
|
});
|
|
255
|
-
this.sessionId = response.sessionId ||
|
|
254
|
+
this.sessionId = response.sessionId || response.value?.sessionId;
|
|
256
255
|
if (!this.sessionId) throw new Error('Failed to get session ID from response');
|
|
257
256
|
debugClient(`Created session: ${this.sessionId}`);
|
|
258
257
|
return {
|
|
259
258
|
sessionId: this.sessionId,
|
|
260
|
-
capabilities: response.capabilities ||
|
|
259
|
+
capabilities: response.capabilities || response.value?.capabilities || {}
|
|
261
260
|
};
|
|
262
261
|
} catch (error) {
|
|
263
262
|
debugClient(`Failed to create session: ${error}`);
|
|
@@ -292,7 +291,7 @@ class WebDriverClient {
|
|
|
292
291
|
async getDeviceInfo() {
|
|
293
292
|
try {
|
|
294
293
|
const statusResponse = await this.makeRequest('GET', '/status');
|
|
295
|
-
if (
|
|
294
|
+
if (statusResponse?.device) return {
|
|
296
295
|
udid: statusResponse.device.udid || statusResponse.device.identifier || '',
|
|
297
296
|
name: statusResponse.device.name || '',
|
|
298
297
|
model: statusResponse.device.model || statusResponse.device.productName || ''
|
|
@@ -327,13 +326,13 @@ exports.WDAManager = __webpack_exports__.WDAManager;
|
|
|
327
326
|
exports.WebDriverClient = __webpack_exports__.WebDriverClient;
|
|
328
327
|
exports.WebDriverRequestError = __webpack_exports__.WebDriverRequestError;
|
|
329
328
|
exports.makeWebDriverRequest = __webpack_exports__.makeWebDriverRequest;
|
|
330
|
-
for(var
|
|
329
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
331
330
|
"BaseServiceManager",
|
|
332
331
|
"WDAManager",
|
|
333
332
|
"WebDriverClient",
|
|
334
333
|
"WebDriverRequestError",
|
|
335
334
|
"makeWebDriverRequest"
|
|
336
|
-
].indexOf(
|
|
335
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
337
336
|
Object.defineProperty(exports, '__esModule', {
|
|
338
337
|
value: true
|
|
339
338
|
});
|
package/package.json
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@midscene/webdriver",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "WebDriver protocol implementation for Midscene automation",
|
|
5
5
|
"main": "dist/lib/index.js",
|
|
6
6
|
"module": "dist/es/index.mjs",
|
|
7
7
|
"types": "dist/types/index.d.ts",
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"node-fetch": "^3.3.2",
|
|
10
|
-
"@midscene/shared": "0.
|
|
10
|
+
"@midscene/shared": "1.0.0"
|
|
11
11
|
},
|
|
12
12
|
"devDependencies": {
|
|
13
|
-
"@rslib/core": "^0.
|
|
13
|
+
"@rslib/core": "^0.18.3",
|
|
14
14
|
"@types/node": "^18.0.0",
|
|
15
15
|
"typescript": "^5.8.3",
|
|
16
16
|
"vitest": "3.0.5"
|
|
@@ -32,8 +32,9 @@
|
|
|
32
32
|
"mobile"
|
|
33
33
|
],
|
|
34
34
|
"scripts": {
|
|
35
|
+
"dev": "npm run build:watch",
|
|
35
36
|
"build": "rslib build",
|
|
36
|
-
"
|
|
37
|
+
"build:watch": "rslib build --watch --no-clean",
|
|
37
38
|
"test": "vitest",
|
|
38
39
|
"lint": "biome check .",
|
|
39
40
|
"lint:fix": "biome check . --write"
|