Leyang 8661c97dcf
docs(site): update timeout parameters in API to include options for disabling timeouts (#686)
* docs(site): update timeout parameters in API to include options for disabling timeouts

* docs(core): update docs for timeout

---------

Co-authored-by: yutao <yutao.tao@bytedance.com>
2025-05-06 11:31:06 +08:00

75 lines
4.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# FAQ
## Midscene 能否根据一句话指令实现智能规划?比如执行 "发一条微博"
我们只建议你在使用 *UI-TARS* 等 GUI Agent 模型时使用这种目标导向的 Prompt。
## 业界的 AI Agent 都在演示“自主规划”,为什么 Midscene 还要开发者提供详细操作步骤?这是一种落后的做法吗?
Midscene 有相当多的工具类、测试类开发者,他们更关注 UI 自动化工具的稳定性和性能。为了确保 Agent 能够在复杂系统中精准运行,准确清晰的 Prompt 依然是眼下的最优解。
为了进一步提高稳定性我们还提供了即时操作接口Instant Action、回放报告、Playground 等工具。他们虽然看似有些“传统”、不太“AI”但在大量实践后我们有信心这些实用工具才是提升效率的利器。
如果你对“智能 GUI Agent”感兴趣不妨看看 [UI-TARS](https://github.com/bytedance/ui-tars) 模型Midscene 也内置了对它的支持。
相关文档:
* [选择 AI 模型](./choose-a-model)
* [编写提示词的技巧](./prompting-tips)
## 局限性
Midscene 存在一些局限性,我们仍在努力改进。
1. 交互类型有限:目前仅支持点击、拖拽(只在 UI-TARS 模型中支持)、输入、键盘和滚动操作。
2. 稳定性风险AI 模型的返回值不是 100% 准确的。遵循 [编写提示词的技巧](./prompting-tips) 可以帮助提高 SDK 稳定性。
3. 使用 GPT-4o 时,无法与跨域 iframe 、canvas 元素交互。使用 Qwen 、UI-TARS 模型时无此问题。
4. 无法访问 Chrome 原生元素:无法访问右键菜单、文件上传对话框等。
5. 无法绕过验证码:有些 LLM 服务会拒绝涉及验证码解决的请求(例如 OpenAI而有些验证码页面的 DOM 无法通过常规的网页抓取方法访问。因此,使用 Midscene 绕过验证码不是一个可靠的方法。
## 支持哪些 AI 模型
你可以按需[选择 AI 模型](./choose-a-model)。
## 会有哪些信息发送到 AI 模型?
Midscene 会发送页面截图到 AI 模型。在使用了 GPT-4o 时,你的页面 DOM 信息也会被发送。
如果你担心数据隐私问题,请参阅 [数据隐私](./data-privacy)。
## 脚本运行偏慢?
在 Midscene.js 中使用通用大模型时由于每次进行规划Planning和查询Query时都会调用 AI其运行耗时可能比传统 Playwright 用例增加 3 到 10 倍,比如从 5 秒变成 20秒。为了让结果更可靠token 和时间成本是不可避免的。
有几种方法可以提高运行效率:
1. 使用即时操作接口,如 `agent.aiTap('Login Button')` 代替 `agent.ai('Click Login Button')`。更多详情请参阅 [API](./API)。
2. 使用专用的模型并自行部署,比如 UI-TARS。这是推荐的做法。更多详情请参阅 [选择 AI 模型](./choose-a-model)。
3. 使用较低的分辨率。
4. 使用缓存来加速调试过程。更多详情请参阅 [缓存](./caching)。
## 浏览器界面持续闪动
一般是 viewport `deviceScaleFactor` 参数与系统环境不匹配造成的。如果你在 Mac 系统下运行,可以把它设成 2 来解决。
```typescript
await page.setViewport({
deviceScaleFactor: 2,
});
```
## 如何了解 Midscene 的运行原理?
在运行脚本后,通过查看报告文件,你可以了解 Midscene 的大致运行原理。
## 自定义网络超时
当在网页上执行某个操作后Midscene 会自动等待网络空闲。这是为了确保自动化过程的稳定性。如果等待超时,不会发生任何事情。
默认的超时时间配置如下:
1. 如果是页面跳转,则等待页面加载完成,默认超时时间为 5000ms
2. 如果是点击、输入等操作,则等待网络空闲,默认超时时间为 2000ms
当然,你可以通过配置参数修改默认超时时间,或者关闭这个功能:
- 使用 [Agent](/zh/api.html#%E6%9E%84%E9%80%A0%E5%99%A8) 上的 `waitForNetworkIdleTimeout``waitForNavigationTimeout` 参数
- 使用 [Yaml](/zh/automate-with-scripts-in-yaml.html#web-%E9%83%A8%E5%88%86) 脚本和 [PlaywrightAiFixture](/zh/integrate-with-playwright.html#%E7%AC%AC%E4%BA%8C%E6%AD%A5%E6%89%A9%E5%B1%95-test-%E5%AE%9E%E4%BE%8B) 中的 `waitForNetworkIdle` 参数