做浏览器自动化的人应该都用过Playwright或者Selenium,写过的人也都知道那个痛——选择器一改页面就挂,维护成本极高。去年接触到PinchTab之后,发现浏览器自动化还有另一种思路:让AI来理解页面结构,而不是靠硬编码的选择器。

这篇文章分享PinchTab的实际使用体验,包括部署过程和几个真实场景的测试。

为什么需要AI驱动的浏览器控制

传统浏览器自动化的问题本质上是"脆弱"。你用CSS选择器或XPath定位页面元素,只要页面稍微改版——按钮挪了个位置、class名变了、DOM结构调了——你的脚本就废了。维护这些脚本的成本经常比手动操作还高。

AI驱动的方案不同:它不是靠选择器定位元素,而是"看"页面,理解页面结构,然后决定怎么操作。就像人操作浏览器一样——看屏幕、找按钮、点击。页面怎么改版都不怕,因为AI是基于视觉理解来操作的,不是基于DOM结构。

PinchTab是什么

PinchTab是一个开源的AI浏览器控制框架。它通过CDP(Chrome DevTools Protocol)连接浏览器,截取页面截图,用视觉模型理解页面内容,然后执行点击、填写、滚动等操作。

和Playwright/Selenium相比,PinchTab的核心区别在于:不需要写选择器,用自然语言描述要做什么就行;页面结构变化不影响脚本,因为它是"看"页面而不是"解析"DOM;支持复杂操作流程,可以处理多步骤的任务。

部署过程

PinchTab基于Python,安装不复杂:

pip install pinchtab

需要一个运行中的Chrome/Chromium实例(启用远程调试模式):

# Linux
google-chrome --remote-debugging-port=9222 --no-first-run

# macOS
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222

连接浏览器:

from pinchtab import Browser

browser = Browser("http://localhost:9222")
browser.navigate("https://example.com")

实战测试

测试一:表单填写

测试场景是在一个注册页面自动填写表单:

# 自然语言描述操作
browser.act("在用户名输入框中填写 'testuser'")
browser.act("在邮箱输入框中填写 'test@example.com'")
browser.act("在密码输入框中填写 'Test123456'")
browser.act("点击注册按钮")

实测下来,简单的表单填写成功率在90%以上。偶尔会在复杂页面上认错输入框,特别是有两个外观相似的输入框时。

测试二:信息提取

result = browser.act("提取页面上所有产品的名称和价格")
print(result)
# 输出:[{"name": "产品A", "price": "¥99"}, {"name": "产品B", "price": "¥199"}]

信息提取的准确率不错,视觉模型对结构化内容的理解能力比预期好。

测试三:多步骤流程

browser.navigate("https://news.example.com")
browser.act("点击第一篇文章的标题")
browser.act("等待页面加载完成")
browser.act("提取文章标题和正文前三段")
browser.act("点击浏览器后退按钮")

多步骤流程的稳定性取决于每一步的可靠性。单步成功率90%的话,5步流程的成功率大约是0.9^5 ≈ 59%。这是目前AI浏览器控制方案的通病。

和其他方案的对比

PinchTab vs Playwright:Playwright稳定可靠,适合结构固定的页面(比如内部管理系统)。PinchTab灵活但有随机性,适合结构不固定或者需要跨站操作的场景。

PinchTab vs Browser Use:两者思路类似,都是AI驱动的浏览器控制。PinchTab更轻量,上手更快;Browser Use生态更丰富,支持更多模型。

踩坑记录

截图质量影响识别准确率。如果浏览器窗口太小或者DPI设置不对,AI可能看不清页面上的文字。建议设viewport为1280x800以上。

操作间隔需要给页面留加载时间。AI判断"页面加载完成"不一定准确,复杂页面建议加显式等待。

费用方面,每次操作都需要调用视觉模型API,高频使用时API费用不容忽视。用本地视觉模型可以降低成本但效果会打折扣。

写在最后

PinchTab代表了浏览器自动化的一个有趣方向:从"精确控制"走向"智能理解"。对于结构不固定的页面、需要跨站操作的任务,AI驱动的方案确实有优势。但它还不够成熟,稳定性还需要提升。建议在非关键场景中试用,核心流程还是用传统方案。