mobilewright 0.0.22 → 0.0.25
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/README.md +62 -16
- package/dist/cli.js +5 -5
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +16 -3
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +9 -2
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/launchers.d.ts +6 -2
- package/dist/launchers.d.ts.map +1 -1
- package/dist/launchers.js +41 -37
- package/dist/launchers.js.map +1 -1
- package/package.json +7 -6
package/README.md
CHANGED
|
@@ -1,12 +1,43 @@
|
|
|
1
1
|
# Mobilewright
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
-
|
|
5
|
-
-
|
|
6
|
-
- Built for developers and AI agents.
|
|
3
|
+
[](https://www.npmjs.com/package/mobilewright)
|
|
4
|
+
[](LICENSE)
|
|
5
|
+
[](https://www.typescriptlang.org/)
|
|
7
6
|
|
|
8
|
-
|
|
7
|
+
Framework for mobile device automation, inspired by Playwright's architecture and developer experience.
|
|
9
8
|
|
|
9
|
+
**Mobilewright** targets iOS and Android devices, simulators, and emulators through a clean, auto-waiting API built on top of [mobilecli](https://github.com/mobile-next/mobilecli).
|
|
10
|
+
|
|
11
|
+
[Get Started](#quick-start) · [API Docs](#api-reference) · [Cloud (mobile-use.com)](https://mobile-use.com)
|
|
12
|
+
|
|
13
|
+
## Why Mobilewright?
|
|
14
|
+
|
|
15
|
+
If you've used Playwright, you already know Mobilewright.
|
|
16
|
+
|
|
17
|
+
| | Mobilewright | Appium | Detox | XCTest/Espresso |
|
|
18
|
+
|---|---|---|---|---|
|
|
19
|
+
| API style | Playwright (`getByRole`, `expect`) | Selenium (WebDriver) | Custom | Native framework |
|
|
20
|
+
| Auto-wait | Built-in, every action | Manual waits | Partial | Manual |
|
|
21
|
+
| Setup | `npm install mobilewright` | Server + drivers + caps | React Native only | Xcode/AS only |
|
|
22
|
+
| Cross-platform | iOS + Android, one API | Yes, verbose | React Native only | Single platform |
|
|
23
|
+
| AI agent support | First-class (accessibility tree) | Limited | No | No |
|
|
24
|
+
| Real devices in the cloud | Via [mobile-use.com](https://mobile-use.com) | Yes (complex) | Simulators only | Yes |
|
|
25
|
+
| Locators | Semantic roles + labels | XPath, CSS, ID | Test IDs | Native queries |
|
|
26
|
+
|
|
27
|
+
## Built for AI agents
|
|
28
|
+
|
|
29
|
+
Your agent needs a phone, not a screenshot.
|
|
30
|
+
|
|
31
|
+
Mobilewright exposes the device's accessibility tree — deterministic, token-efficient, no vision model needed. Use it with [mobile-mcp](https://github.com/mobile-next/mobile-mcp), Claude, Cursor, or any coding agent.
|
|
32
|
+
|
|
33
|
+
```typescript
|
|
34
|
+
// An AI agent can control a real phone with readable, semantic actions
|
|
35
|
+
await screen.getByRole('button', { name: 'Sign In' }).tap();
|
|
36
|
+
await screen.getByLabel('Email').fill('user@example.com');
|
|
37
|
+
await expect(screen.getByText('Welcome')).toBeVisible();
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
No XPath. No coordinates. No vision model. The agent reads the accessibility tree and acts on it directly.
|
|
10
41
|
|
|
11
42
|
## Features
|
|
12
43
|
|
|
@@ -62,6 +93,7 @@ It checks Xcode, Android SDK, simulators, ADB, and other dependencies — and te
|
|
|
62
93
|
| `@mobilewright/test` | Test fixtures |
|
|
63
94
|
| `@mobilewright/protocol` | TypeScript interfaces (`MobilewrightDriver`, `ViewNode`) |
|
|
64
95
|
| `@mobilewright/driver-mobilecli` | WebSocket JSON-RPC client for mobilecli |
|
|
96
|
+
| `@mobilewright/driver-mobile-use` | WebSocket JSON-RPC client for [mobile-use.com](https://mobile-use.com) cloud devices |
|
|
65
97
|
| `@mobilewright/mobilewright-core` | `Device`, `Screen`, `Locator`, `expect` — the user-facing API |
|
|
66
98
|
|
|
67
99
|
Most users only need `mobilewright` (or `@mobilewright/test` for vitest integration).
|
|
@@ -82,22 +114,21 @@ const device = await ios.launch();
|
|
|
82
114
|
const device = await ios.launch({ bundleId: 'com.example.app' });
|
|
83
115
|
|
|
84
116
|
// Target a specific simulator by name
|
|
85
|
-
const device = await ios.launch({ deviceName:
|
|
117
|
+
const device = await ios.launch({ deviceName: /My.*iPhone/ });
|
|
86
118
|
|
|
87
119
|
// Explicit device UDID (skips discovery)
|
|
88
120
|
const device = await ios.launch({ deviceId: '5A5FCFCA-...' });
|
|
89
121
|
|
|
90
122
|
// List available devices
|
|
91
|
-
const devices =
|
|
92
|
-
const devices =
|
|
123
|
+
const devices = ios.devices();
|
|
124
|
+
const devices = android.devices();
|
|
93
125
|
```
|
|
94
126
|
|
|
95
127
|
`launch()` handles the full lifecycle:
|
|
96
128
|
1. Checks if mobilecli is reachable (auto-starts it for local URLs if not running)
|
|
97
|
-
2.
|
|
98
|
-
3.
|
|
99
|
-
4.
|
|
100
|
-
5. On `device.close()`, kills the auto-started server
|
|
129
|
+
2. Discovers booted devices (prefers simulators over real devices)
|
|
130
|
+
3. Connects and optionally launches the app
|
|
131
|
+
4. On `device.close()`, kills the auto-started server
|
|
101
132
|
|
|
102
133
|
### Screen
|
|
103
134
|
|
|
@@ -113,8 +144,6 @@ screen.getByText(/welcome/i) // RegExp match
|
|
|
113
144
|
screen.getByText('welcome', { exact: false }) // substring match
|
|
114
145
|
screen.getByType('TextField') // element type
|
|
115
146
|
screen.getByRole('button', { name: 'Sign In' }) // semantic role + name filter
|
|
116
|
-
screen.getByPlaceholder('Search...') // placeholder text
|
|
117
|
-
screen.getByPlaceholder('search', { exact: false }) // substring match
|
|
118
147
|
```
|
|
119
148
|
|
|
120
149
|
**Direct actions:**
|
|
@@ -234,8 +263,10 @@ await expect(locator).toBeVisible({ timeout: 10_000 });
|
|
|
234
263
|
| `checkbox` | -- | Checkbox |
|
|
235
264
|
| `slider` | Slider | SeekBar |
|
|
236
265
|
| `list` | Table, CollectionView, ScrollView | ListView, RecyclerView, ReactScrollView |
|
|
237
|
-
| `header` | NavigationBar | Toolbar |
|
|
266
|
+
| `header` | NavigationBar | Toolbar, Header |
|
|
238
267
|
| `link` | Link | Link |
|
|
268
|
+
| `listitem` | Cell | LinearLayout, RelativeLayout, Other |
|
|
269
|
+
| `tab` | Tab, TabBar | Tab, TabBar |
|
|
239
270
|
|
|
240
271
|
\* ReactViewGroup matches `button` only when the element has `clickable="true"` or `accessible="true"` in its raw attributes, to avoid false positives since React Native uses ReactViewGroup for all container views.
|
|
241
272
|
|
|
@@ -263,8 +294,13 @@ All options:
|
|
|
263
294
|
| `platform` | `'ios' \| 'android'` | Device platform (optional) |
|
|
264
295
|
| `bundleId` | `string` | App bundle ID (optional) |
|
|
265
296
|
| `deviceId` | `string` | Explicit device UDID (optional) |
|
|
266
|
-
| `deviceName` | `
|
|
297
|
+
| `deviceName` | `RegExp` | RegExp to match device name (optional) |
|
|
267
298
|
| `timeout` | `number` | Global locator timeout in ms (optional) |
|
|
299
|
+
| `testDir` | `string` | Directory to search for test files (optional) |
|
|
300
|
+
| `testMatch` | `string \| RegExp \| Array` | Glob patterns for test files (optional) |
|
|
301
|
+
| `reporter` | `'list' \| 'html' \| 'json' \| 'junit' \| Array` | Reporter to use (optional) |
|
|
302
|
+
| `retries` | `number` | Maximum retry count for flaky tests (optional) |
|
|
303
|
+
| `projects` | `MobilewrightProjectConfig[]` | Multi-device / multi-platform project matrix (optional) |
|
|
268
304
|
|
|
269
305
|
Config values are used as defaults — `LaunchOptions` passed to `ios.launch()` always take precedence.
|
|
270
306
|
|
|
@@ -348,6 +384,12 @@ npx mobilewright show-report
|
|
|
348
384
|
npx mobilewright show-report mobilewright-report/
|
|
349
385
|
```
|
|
350
386
|
|
|
387
|
+
## Run on real devices with mobile-use.com
|
|
388
|
+
|
|
389
|
+
Need real phones in the cloud? [mobile-use.com](https://mobile-use.com) gives you API access to hundreds of real Android and iOS devices. Your Mobilewright scripts run with zero modification — point your config at the mobile-use.com endpoint and go.
|
|
390
|
+
|
|
391
|
+
mobile-use.com is the only device cloud with native Mobilewright support.
|
|
392
|
+
|
|
351
393
|
## Contributing
|
|
352
394
|
|
|
353
395
|
```bash
|
|
@@ -371,3 +413,7 @@ npm test
|
|
|
371
413
|
| Cordova / Capacitor | ✅ | ✅ | WebView content accessible via native accessibility tree |
|
|
372
414
|
| NativeScript | ✅ | ✅ | Renders to native views on both platforms |
|
|
373
415
|
|
|
416
|
+
## License
|
|
417
|
+
|
|
418
|
+
This project is licensed under the Apache License 2.0 — see the [LICENSE](LICENSE) file for details.
|
|
419
|
+
|
package/dist/cli.js
CHANGED
|
@@ -41,7 +41,7 @@ program
|
|
|
41
41
|
if (opts.retries)
|
|
42
42
|
overrides.retries = Number(opts.retries);
|
|
43
43
|
if (opts.workers)
|
|
44
|
-
overrides.workers = opts.workers;
|
|
44
|
+
overrides.workers = Number(opts.workers);
|
|
45
45
|
if (opts.reporter) {
|
|
46
46
|
const names = opts.reporter.split(',');
|
|
47
47
|
overrides.reporter = names.map((name) => {
|
|
@@ -122,9 +122,9 @@ function printDevicesTable(devices) {
|
|
|
122
122
|
program
|
|
123
123
|
.command('devices')
|
|
124
124
|
.description('list all connected devices, simulators, and emulators')
|
|
125
|
-
.action(() => {
|
|
125
|
+
.action(async () => {
|
|
126
126
|
const driver = new MobilecliDriver();
|
|
127
|
-
const devices = driver.listDevices();
|
|
127
|
+
const devices = await driver.listDevices();
|
|
128
128
|
if (devices.length === 0) {
|
|
129
129
|
console.log('No devices found, try using \'mobilewright doctor\' command');
|
|
130
130
|
return;
|
|
@@ -140,7 +140,7 @@ async function resolveDeviceId(explicit, driver) {
|
|
|
140
140
|
if (config.deviceId) {
|
|
141
141
|
return config.deviceId;
|
|
142
142
|
}
|
|
143
|
-
const devices = driver.listDevices();
|
|
143
|
+
const devices = await driver.listDevices();
|
|
144
144
|
const online = devices.filter(d => d.state === 'online');
|
|
145
145
|
if (online.length === 0) {
|
|
146
146
|
console.error('No online devices found. Specify one with --device <id>, or try \'mobilewright doctor\' to check your environment.');
|
|
@@ -164,7 +164,7 @@ program
|
|
|
164
164
|
try {
|
|
165
165
|
const driver = new MobilecliDriver({ url: opts.url });
|
|
166
166
|
const deviceId = await resolveDeviceId(opts.device, driver);
|
|
167
|
-
await driver.connect({ deviceId, url: opts.url });
|
|
167
|
+
await driver.connect({ platform: 'ios', deviceId, url: opts.url });
|
|
168
168
|
const buffer = await driver.screenshot();
|
|
169
169
|
await driver.disconnect();
|
|
170
170
|
const outputPath = resolve(process.cwd(), opts.output);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACtG,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChD,MAAM,IAAI,GAAG,QAAQ,CAAC,iBAAiB,CAAwB,CAAC;AAEhE,MAAM,eAAe,GAAG,qBAAqB,CAAC;AAC9C,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;AAE1F,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAC9B,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAC7B,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAEzB,0EAA0E;AAC1E,OAAO;KACJ,OAAO,CAAC,uBAAuB,CAAC;KAChC,WAAW,CAAC,WAAW,CAAC;KACxB,MAAM,CAAC,qBAAqB,EAAE,oBAAoB,CAAC;KACnD,MAAM,CAAC,uBAAuB,EAAE,yCAAyC,CAAC;KAC1E,MAAM,CAAC,eAAe,EAAE,oCAAoC,CAAC;KAC7D,MAAM,CAAC,sBAAsB,EAAE,wCAAwC,CAAC;KACxE,MAAM,CAAC,qBAAqB,EAAE,wCAAwC,CAAC;KACvE,MAAM,CAAC,qBAAqB,EAAE,qCAAqC,CAAC;KACpE,MAAM,CAAC,qBAAqB,EAAE,8BAA8B,CAAC;KAC7D,MAAM,CAAC,qBAAqB,EAAE,8BAA8B,CAAC;KAC7D,MAAM,CAAC,sBAAsB,EAAE,sCAAsC,CAAC;KACtE,MAAM,CAAC,QAAQ,EAAE,qCAAqC,CAAC;KACvD,MAAM,CAAC,KAAK,EAAE,IAAc,EAAE,IAA6B,EAAE,EAAE;IAC9D,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,oCAAoC,CAAC,CAAC;IAClF,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,kCAAkC,CAAC,CAAC;IAEnF,MAAM,SAAS,GAA4B,EAAE,CAAC;IAC9C,IAAI,IAAI,CAAC,OAAO;QAAE,SAAS,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3D,IAAI,IAAI,CAAC,OAAO;QAAE,SAAS,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3D,IAAI,IAAI,CAAC,OAAO;QAAE,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
export interface MobilewrightUseOptions {
|
|
2
2
|
/** Platform for this project. */
|
|
3
3
|
platform?: 'ios' | 'android';
|
|
4
|
-
/** Device ID for this project. */
|
|
5
|
-
deviceId?: string;
|
|
6
4
|
/** Regex to match device name. */
|
|
7
5
|
deviceName?: RegExp;
|
|
8
6
|
/** App bundle ID for this project. */
|
|
@@ -32,21 +30,36 @@ export interface MobilewrightProjectConfig {
|
|
|
32
30
|
/** Projects that must run before this one. */
|
|
33
31
|
dependencies?: string[];
|
|
34
32
|
}
|
|
33
|
+
export interface DriverConfigMobilecli {
|
|
34
|
+
type: 'mobilecli';
|
|
35
|
+
}
|
|
36
|
+
export interface DriverConfigMobileUse {
|
|
37
|
+
type: 'mobile-use';
|
|
38
|
+
region?: string;
|
|
39
|
+
apiKey?: string;
|
|
40
|
+
}
|
|
41
|
+
export type DriverConfig = DriverConfigMobilecli | DriverConfigMobileUse;
|
|
35
42
|
export interface MobilewrightConfig {
|
|
36
43
|
/** Default platform. */
|
|
37
44
|
platform?: 'ios' | 'android';
|
|
38
|
-
/**
|
|
45
|
+
/** Specific device identifier (local drivers only). */
|
|
39
46
|
deviceId?: string;
|
|
40
47
|
/** Regex to match device name (e.g. /iPhone 17/). */
|
|
41
48
|
deviceName?: RegExp;
|
|
42
49
|
/** Default app bundle ID. */
|
|
43
50
|
bundleId?: string;
|
|
51
|
+
/** App paths (APK/IPA) to install on the device before launching. */
|
|
52
|
+
installApps?: string | string[];
|
|
53
|
+
/** Automatically launch the app after connecting. Default: true. */
|
|
54
|
+
autoAppLaunch?: boolean;
|
|
44
55
|
/** mobilecli server URL (use for remote servers). */
|
|
45
56
|
url?: string;
|
|
46
57
|
/** Path to mobilecli binary (if not on PATH). */
|
|
47
58
|
mobilecliPath?: string;
|
|
48
59
|
/** Auto-start mobilecli server if not running. Default: true. */
|
|
49
60
|
autoStart?: boolean;
|
|
61
|
+
/** Driver to use. Default: { type: 'mobilecli' }. */
|
|
62
|
+
driver?: DriverConfig;
|
|
50
63
|
/** Directory to search for test files. Default: config file directory. */
|
|
51
64
|
testDir?: string;
|
|
52
65
|
/** Glob patterns for test files. Default: **\/*.{test,spec}.{js,ts,mjs} */
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,sBAAsB;IACrC,iCAAiC;IACjC,QAAQ,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;IAC7B,kCAAkC;IAClC,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js
CHANGED
|
@@ -2,7 +2,9 @@ import { access } from 'node:fs/promises';
|
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
/** Type-safe config helper for mobilewright.config.ts files. */
|
|
4
4
|
export function defineConfig(config) {
|
|
5
|
-
|
|
5
|
+
// Default to 1 worker — Playwright defaults to half the CPU cores, but mobile
|
|
6
|
+
// tests typically target a single device so parallel workers cause conflicts.
|
|
7
|
+
return { workers: 1, ...config };
|
|
6
8
|
}
|
|
7
9
|
const CONFIG_FILES = [
|
|
8
10
|
'mobilewright.config.ts',
|
|
@@ -19,7 +21,12 @@ export async function loadConfig(cwd = process.cwd()) {
|
|
|
19
21
|
try {
|
|
20
22
|
await access(fullPath);
|
|
21
23
|
const mod = await import(fullPath);
|
|
22
|
-
|
|
24
|
+
let config = mod.default ?? mod;
|
|
25
|
+
// Some loaders (e.g. Playwright's TS transpiler) double-wrap the default export
|
|
26
|
+
if (config && typeof config === 'object' && 'default' in config) {
|
|
27
|
+
config = config.default;
|
|
28
|
+
}
|
|
29
|
+
return config;
|
|
23
30
|
}
|
|
24
31
|
catch {
|
|
25
32
|
continue;
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AA0GjC,gEAAgE;AAChE,MAAM,UAAU,YAAY,CAAC,MAA0B;IACrD,8EAA8E;IAC9E,8EAA8E;IAC9E,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC;AACnC,CAAC;AAED,MAAM,YAAY,GAAG;IACnB,wBAAwB;IACxB,wBAAwB;IACxB,yBAAyB;CAC1B,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAAc,OAAO,CAAC,GAAG,EAAE;IAE3B,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;YACvB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;YACnC,IAAI,MAAM,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC;YAChC,gFAAgF;YAChF,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;gBAChE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;YAC1B,CAAC;YACD,OAAO,MAA4B,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { ios, android, type LaunchOptions } from './launchers.js';
|
|
2
2
|
export { expect } from '@mobilewright/core';
|
|
3
3
|
export { Device, Screen, Locator } from '@mobilewright/core';
|
|
4
|
-
export { defineConfig, loadConfig, type MobilewrightConfig, type MobilewrightProjectConfig, type MobilewrightUseOptions } from './config.js';
|
|
4
|
+
export { defineConfig, loadConfig, type MobilewrightConfig, type MobilewrightProjectConfig, type MobilewrightUseOptions, type DriverConfig, type DriverConfigMobilecli, type DriverConfigMobileUse } from './config.js';
|
|
5
5
|
export { MobilewrightError } from './errors.js';
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGlE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG5C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG7D,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,kBAAkB,EAAE,KAAK,yBAAyB,EAAE,KAAK,sBAAsB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGlE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG5C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG7D,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,kBAAkB,EAAE,KAAK,yBAAyB,EAAE,KAAK,sBAAsB,EAAE,KAAK,YAAY,EAAE,KAAK,qBAAqB,EAAE,KAAK,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGxN,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,OAAO,EAAE,GAAG,EAAE,OAAO,EAAsB,MAAM,gBAAgB,CAAC;AAElE,aAAa;AACb,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,kCAAkC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7D,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,OAAO,EAAE,GAAG,EAAE,OAAO,EAAsB,MAAM,gBAAgB,CAAC;AAElE,aAAa;AACb,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,kCAAkC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7D,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,UAAU,EAAmK,MAAM,aAAa,CAAC;AAExN,SAAS;AACT,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/launchers.d.ts
CHANGED
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
import type { DeviceInfo } from '@mobilewright/protocol';
|
|
2
2
|
import { Device } from '@mobilewright/core';
|
|
3
|
+
import type { DriverConfig } from './config.js';
|
|
3
4
|
export interface LaunchOptions {
|
|
4
5
|
bundleId?: string;
|
|
5
|
-
|
|
6
|
+
installApps?: string | string[];
|
|
7
|
+
autoAppLaunch?: boolean;
|
|
6
8
|
deviceId?: string;
|
|
9
|
+
deviceName?: RegExp;
|
|
7
10
|
url?: string;
|
|
8
11
|
timeout?: number;
|
|
9
12
|
autoStart?: boolean;
|
|
13
|
+
driver?: DriverConfig;
|
|
10
14
|
}
|
|
11
15
|
interface PlatformLauncher {
|
|
12
16
|
launch(opts?: LaunchOptions): Promise<Device>;
|
|
13
|
-
devices(): DeviceInfo[]
|
|
17
|
+
devices(): Promise<DeviceInfo[]>;
|
|
14
18
|
}
|
|
15
19
|
/** iOS platform launcher */
|
|
16
20
|
export declare const ios: PlatformLauncher;
|
package/dist/launchers.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launchers.d.ts","sourceRoot":"","sources":["../src/launchers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,UAAU,
|
|
1
|
+
{"version":3,"file":"launchers.d.ts","sourceRoot":"","sources":["../src/launchers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,UAAU,EAAsB,MAAM,wBAAwB,CAAC;AACvF,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAI5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAChC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,UAAU,gBAAgB;IACxB,MAAM,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9C,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;CAClC;AAiED,4BAA4B;AAC5B,eAAO,MAAM,GAAG,kBAAwB,CAAC;AAEzC,gCAAgC;AAChC,eAAO,MAAM,OAAO,kBAA4B,CAAC"}
|
package/dist/launchers.js
CHANGED
|
@@ -1,55 +1,59 @@
|
|
|
1
1
|
import { Device } from '@mobilewright/core';
|
|
2
2
|
import { MobilecliDriver, DEFAULT_URL } from '@mobilewright/driver-mobilecli';
|
|
3
|
+
import { MobileUseDriver } from '@mobilewright/driver-mobile-use';
|
|
3
4
|
import { ensureMobilecliReachable } from './server.js';
|
|
4
|
-
|
|
5
|
+
function createDriver(driverConfig, url) {
|
|
6
|
+
if (driverConfig?.type === 'mobile-use') {
|
|
7
|
+
return new MobileUseDriver({
|
|
8
|
+
region: driverConfig.region,
|
|
9
|
+
apiKey: driverConfig.apiKey,
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
return new MobilecliDriver({ url });
|
|
13
|
+
}
|
|
14
|
+
async function installAndLaunchApps(device, appsToInstall, opts) {
|
|
15
|
+
for (const appPath of appsToInstall) {
|
|
16
|
+
await device.installApp(appPath);
|
|
17
|
+
}
|
|
18
|
+
if (opts.bundleId && opts.autoAppLaunch !== false) {
|
|
19
|
+
await device.launchApp(opts.bundleId);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
5
22
|
function createLauncher(platform) {
|
|
6
23
|
return {
|
|
7
24
|
async launch(opts = {}) {
|
|
25
|
+
const driverConfig = opts.driver;
|
|
8
26
|
const url = opts.url ?? DEFAULT_URL;
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
device
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
27
|
+
const appsToInstall = opts.installApps
|
|
28
|
+
? (Array.isArray(opts.installApps) ? opts.installApps : [opts.installApps])
|
|
29
|
+
: [];
|
|
30
|
+
if (!driverConfig || driverConfig.type === 'mobilecli') {
|
|
31
|
+
const { serverProcess } = await ensureMobilecliReachable(url, {
|
|
32
|
+
autoStart: opts.autoStart ?? true,
|
|
33
|
+
});
|
|
34
|
+
const driver = createDriver(driverConfig, url);
|
|
35
|
+
const device = new Device(driver);
|
|
36
|
+
await device.connect({ url, platform, deviceId: opts.deviceId, deviceName: opts.deviceName, timeout: opts.timeout });
|
|
37
|
+
if (serverProcess) {
|
|
38
|
+
device.onClose(() => serverProcess.kill());
|
|
39
|
+
}
|
|
40
|
+
await installAndLaunchApps(device, appsToInstall, opts);
|
|
41
|
+
return device;
|
|
21
42
|
}
|
|
43
|
+
// mobile-use driver path — don't pass mobilecli's default URL;
|
|
44
|
+
// the driver has its own default (wss://api.mobilenexthq.com/ws).
|
|
45
|
+
const driver = createDriver(driverConfig);
|
|
46
|
+
const device = new Device(driver);
|
|
47
|
+
await device.connect({ ...(opts.url && { url: opts.url }), platform, deviceName: opts.deviceName, timeout: opts.timeout });
|
|
48
|
+
await installAndLaunchApps(device, appsToInstall, opts);
|
|
22
49
|
return device;
|
|
23
50
|
},
|
|
24
|
-
devices() {
|
|
51
|
+
async devices() {
|
|
25
52
|
const driver = new MobilecliDriver();
|
|
26
53
|
return driver.listDevices({ platform });
|
|
27
54
|
},
|
|
28
55
|
};
|
|
29
56
|
}
|
|
30
|
-
function resolveDeviceId(driver, platform, deviceName) {
|
|
31
|
-
const allDevices = driver.listDevices();
|
|
32
|
-
const online = allDevices.filter((d) => d.platform === platform && d.state === 'online');
|
|
33
|
-
let candidates = online.filter((d) => d.type === 'simulator' || d.type === 'emulator');
|
|
34
|
-
if (candidates.length === 0) {
|
|
35
|
-
candidates = online;
|
|
36
|
-
}
|
|
37
|
-
if (deviceName) {
|
|
38
|
-
candidates = candidates.filter((d) => deviceName.test(d.name));
|
|
39
|
-
if (candidates.length === 0) {
|
|
40
|
-
const available = online.map((d) => d.name).join(', ');
|
|
41
|
-
throw new MobilewrightError(`No online ${platform} device matching ${deviceName} found.\n` +
|
|
42
|
-
(available ? `Available: ${available}` : `No online ${platform} devices found.`));
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
if (candidates.length === 0) {
|
|
46
|
-
throw new MobilewrightError(`No online ${platform} devices found.\n\n` +
|
|
47
|
-
(platform === 'ios'
|
|
48
|
-
? `Start a simulator in Xcode, or boot one with:\n xcrun simctl boot "<simulator name>"`
|
|
49
|
-
: `Start an emulator in Android Studio, or boot one with:\n emulator -avd <avd_name>`));
|
|
50
|
-
}
|
|
51
|
-
return candidates[0].id;
|
|
52
|
-
}
|
|
53
57
|
/** iOS platform launcher */
|
|
54
58
|
export const ios = createLauncher('ios');
|
|
55
59
|
/** Android platform launcher */
|
package/dist/launchers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launchers.js","sourceRoot":"","sources":["../src/launchers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"launchers.js","sourceRoot":"","sources":["../src/launchers.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mobilewright",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.25",
|
|
4
4
|
"description": "Mobile device automation framework inspired by Playwright",
|
|
5
5
|
"homepage": "https://mobilewright.dev",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
},
|
|
26
26
|
"repository": {
|
|
27
27
|
"type": "git",
|
|
28
|
-
"url": "https://github.com/mobile-next/mobilewright",
|
|
28
|
+
"url": "git+https://github.com/mobile-next/mobilewright.git",
|
|
29
29
|
"directory": "packages/mobilewright"
|
|
30
30
|
},
|
|
31
31
|
"files": [
|
|
@@ -33,10 +33,11 @@
|
|
|
33
33
|
"assets"
|
|
34
34
|
],
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@mobilewright/core": "^0.0.
|
|
37
|
-
"@mobilewright/driver-mobilecli": "^0.0.
|
|
38
|
-
"@mobilewright/
|
|
39
|
-
"@mobilewright/
|
|
36
|
+
"@mobilewright/core": "^0.0.25",
|
|
37
|
+
"@mobilewright/driver-mobilecli": "^0.0.25",
|
|
38
|
+
"@mobilewright/driver-mobile-use": "^0.0.25",
|
|
39
|
+
"@mobilewright/protocol": "^0.0.25",
|
|
40
|
+
"@mobilewright/test": "^0.0.25",
|
|
40
41
|
"commander": "^14.0.3",
|
|
41
42
|
"playwright": "1.58.2",
|
|
42
43
|
"ws": "^8.18.0"
|