1. 安装依赖
pnpm add -D @midscene/web playwright dotenv tsx
pnpm exec playwright install chromium
2. 编写代码
将以下代码保存为 demo.ts,并确保同一目录下的 .env 文件中已包含验证通过的模型配置(脚本会通过 dotenv/config 自动加载)。
demo.ts
import 'dotenv/config';
import { chromium } from 'playwright';
import { PlaywrightAgent } from '@midscene/web/playwright';
async function main() {
const browser = await chromium.launch();
try {
const page = await browser.newPage();
await page.goto('https://todomvc.com/examples/react/dist/#/');
const agent = new PlaywrightAgent(page);
try {
await agent.aiWaitFor('The TodoMVC input is visible');
await agent.aiAct('Add a todo named Try Midscene, then mark it completed');
await agent.aiAssert('A todo named Try Midscene is marked completed');
} finally {
await agent.destroy();
}
} finally {
await browser.close();
}
}
main().catch((error) => {
console.error(error);
process.exitCode = 1;
});
3. 运行
(可选)运行前可先验证模型配置是否可用:
pnpm dlx @midscene/test@latest model verify
在同一目录下运行脚本:
4. 更多文档
关于浏览器连接、平台特有能力与限制,请参阅 Web / Playwright SDK;如需在测试用例中使用 Midscene,请参阅接入 Playwright Test。
1. 安装依赖
pnpm add -D @midscene/web puppeteer dotenv tsx
2. 编写代码
将以下代码保存为 demo.ts,并确保同一目录下的 .env 文件中已包含验证通过的模型配置(脚本会通过 dotenv/config 自动加载)。
demo.ts
import 'dotenv/config';
import puppeteer from 'puppeteer';
import { PuppeteerAgent } from '@midscene/web/puppeteer';
async function main() {
const browser = await puppeteer.launch();
try {
const page = await browser.newPage();
await page.goto('https://todomvc.com/examples/react/dist/#/');
const agent = new PuppeteerAgent(page);
try {
await agent.aiWaitFor('The TodoMVC input is visible');
await agent.aiAct('Add a todo named Try Midscene, then mark it completed');
await agent.aiAssert('A todo named Try Midscene is marked completed');
} finally {
await agent.destroy();
}
} finally {
await browser.close();
}
}
main().catch((error) => {
console.error(error);
process.exitCode = 1;
});
3. 运行
(可选)运行前可先验证模型配置是否可用:
pnpm dlx @midscene/test@latest model verify
在同一目录下运行脚本:
4. 更多文档
关于 连接配置、平台特有能力与限制,请参阅 Puppeteer 接入指南。
1. 安装依赖
pnpm add -D @midscene/web dotenv tsx
2. 编写代码
将以下代码保存为 demo.ts,并确保同一目录下的 .env 文件中已包含验证通过的模型配置(脚本会通过 dotenv/config 自动加载)。
运行前请保持 Chrome 处于打开状态,并在插件弹出提示时允许脚本连接。脚本执行结束后,会自动关闭其新建的标签页。
demo.ts
import 'dotenv/config';
import { AgentOverChromeBridge } from '@midscene/web/bridge-mode';
async function main() {
const agent = new AgentOverChromeBridge({ closeNewTabsAfterDisconnect: true });
try {
await agent.connectNewTabWithUrl('https://todomvc.com/examples/react/dist/#/');
await agent.aiWaitFor('The TodoMVC input is visible');
await agent.aiAct('Add a todo named Try Midscene, then mark it completed');
await agent.aiAssert('A todo named Try Midscene is marked completed');
} finally {
await agent.destroy();
}
}
main().catch((error) => {
console.error(error);
process.exitCode = 1;
});
3. 运行
(可选)运行前可先验证模型配置是否可用:
pnpm dlx @midscene/test@latest model verify
在同一目录下运行脚本:
4. 更多文档
关于连接配置、平台特有能力与限制,请参阅 Chrome Bridge SDK。
1. 安装依赖
pnpm add -D @midscene/android dotenv tsx
2. 编写代码
将以下代码保存为 demo.ts,并确保同一目录下的 .env 文件中已包含验证通过的模型配置(脚本会通过 dotenv/config 自动加载)。
默认连接第一台可用设备;如果连接了多台设备,请将 adb devices 列出的设备 ID 传给 agentFromAdbDevice(deviceId)。
demo.ts
import 'dotenv/config';
import { agentFromAdbDevice } from '@midscene/android';
async function main() {
const agent = await agentFromAdbDevice();
try {
await agent.launch('https://todomvc.com/examples/react/dist/#/');
await agent.aiWaitFor('The TodoMVC input is visible');
await agent.aiAct('Add a todo named Try Midscene, then mark it completed');
await agent.aiAssert('A todo named Try Midscene is marked completed');
} finally {
await agent.destroy();
}
}
main().catch((error) => {
console.error(error);
process.exitCode = 1;
});
3. 运行
(可选)运行前可先验证模型配置是否可用:
pnpm dlx @midscene/test@latest model verify
在同一目录下运行脚本:
4. 更多文档
关于连接配置、平台特有能力与限制,请参阅 Android 接入指南。
1. 安装依赖
pnpm add -D @midscene/ios dotenv tsx
2. 编写代码
将以下代码保存为 demo.ts,并确保同一目录下的 .env 文件中已包含验证通过的模型配置(脚本会通过 dotenv/config 自动加载)。
请将示例中的 wdaHost 和 wdaPort 替换为实际可用的 WebDriverAgent 服务地址。
demo.ts
import 'dotenv/config';
import { agentFromWebDriverAgent } from '@midscene/ios';
async function main() {
const agent = await agentFromWebDriverAgent({
wdaHost: 'localhost',
wdaPort: 8100,
});
try {
await agent.launch('https://todomvc.com/examples/react/dist/#/');
await agent.aiWaitFor('The TodoMVC input is visible');
await agent.aiAct('Add a todo named Try Midscene, then mark it completed');
await agent.aiAssert('A todo named Try Midscene is marked completed');
} finally {
await agent.destroy();
}
}
main().catch((error) => {
console.error(error);
process.exitCode = 1;
});
3. 运行
(可选)运行前可先验证模型配置是否可用:
pnpm dlx @midscene/test@latest model verify
在同一目录下运行脚本:
4. 更多文档
关于连接配置、平台特有能力与限制,请参阅 iOS 接入指南。
1. 安装依赖
pnpm add -D @midscene/harmony dotenv tsx
2. 编写代码
将以下代码保存为 demo.ts,并确保同一目录下的 .env 文件中已包含验证通过的模型配置(脚本会通过 dotenv/config 自动加载)。
默认连接第一台可用设备;如果连接了多台设备,请将 hdc list targets 列出的设备 ID 传给 agentFromHdcDevice(deviceId)。
demo.ts
import 'dotenv/config';
import { agentFromHdcDevice } from '@midscene/harmony';
async function main() {
const agent = await agentFromHdcDevice();
try {
await agent.launch('https://todomvc.com/examples/react/dist/#/');
await agent.aiWaitFor('The TodoMVC input is visible');
await agent.aiAct('Add a todo named Try Midscene, then mark it completed');
await agent.aiAssert('A todo named Try Midscene is marked completed');
} finally {
await agent.destroy();
}
}
main().catch((error) => {
console.error(error);
process.exitCode = 1;
});
3. 运行
(可选)运行前可先验证模型配置是否可用:
pnpm dlx @midscene/test@latest model verify
在同一目录下运行脚本:
4. 更多文档
关于连接配置、平台特有能力与限制,请参阅 HarmonyOS 接入指南。
1. 安装依赖
pnpm add -D @midscene/computer dotenv tsx
2. 编写代码
将以下代码保存为 demo.ts,并确保同一目录下的 .env 文件中已包含验证通过的模型配置(脚本会通过 dotenv/config 自动加载)。
该脚本会直接操控当前桌面上的浏览器,运行期间请勿移动鼠标或操作键盘。
demo.ts
import 'dotenv/config';
import { agentForComputer } from '@midscene/computer';
async function main() {
const agent = await agentForComputer();
try {
await agent.aiAct('Open a browser and navigate to https://todomvc.com/examples/react/dist/#/');
await agent.aiWaitFor('The TodoMVC input is visible');
await agent.aiAct('Add a todo named Try Midscene, then mark it completed');
await agent.aiAssert('A todo named Try Midscene is marked completed');
} finally {
await agent.destroy();
}
}
main().catch((error) => {
console.error(error);
process.exitCode = 1;
});
3. 运行
(可选)运行前可先验证模型配置是否可用:
pnpm dlx @midscene/test@latest model verify
在同一目录下运行脚本:
4. 更多文档
关于连接配置、平台特有能力与限制,请参阅桌面端接入指南。