Playwright MCP原理以及与Midscene.js的区别
Playwright-MCP原理
Playwright有一个page._snapshotForAI方法,为html生成如下格式的字符串,基于html的aria也就是语义生成的,每个节点有个ref,ref是唯一的,元素的实现是通过这个ref来实现。
以下是通过page._snapshotForAI方法为 https://playwright.dev/ 生成的部分字符串
1 | - generic [ref=e2]: |
缺点
- 假如网站内容多,生成的snapshot就很大,与大模型交互的所需要的token就多,会存在费用高,token数限制的问题。
- 假如网站没做好aria无障碍,可能会存在识别精度低的问题。
与Midscene.js的区别
定位准确度
整体差不多,Playwright-MCP为每个节点生成ref,基于ref定位,而Midscene.js基于视觉大模型获取boundingBox,然后进行范围匹配,都是通过大模型语义识别。可定位区域
Playwright-MCP支持整个网站,Midscene.js基于可视区域,假如有个按钮在弹窗下面,Midscene.js就无法识别了。定位速度
Playwright-MCP较快,两个case 5s内完成了,但Midscene.js基于视觉大模型,速度较慢,本地试了下平均一个请求5-10s。测试报告
Midscene.js有完善的用例报告回放,Playwright-MCP需要自己去接入或者实现一套。