就是跑 ui 自动化的同时捕获接口,最后根据接口返回结果过滤
用过 appium + mitmproxy
mitmproxy 作代理,selenum 走这个代理,这样所有的请求都会过 mitmproxy,根据自己的需要抓取保存下来即可。
现在 selenium4 可以做到监听 ajax request 了,还可以模拟接口返回,我们目前可以用来做一些 error code 的 mock 了
可以的,大佬有撒高见?
这个可以吗?如果可以的话,那就可以放弃 mitmproxy 了,毕竟 mitmproxy 需要另起一个服务
3 楼是对的。当然不用 selenium,换 playwright 也可以。
Selenium 里大概就是下面这种工作方式吧,webdriver 跟浏览器 driver 通讯是通过 json wire protocol 的,但是现在可以通过 websocket 的方式直接跟 devtools 进行通讯,所以 devtools 里面的很多功能可以直接使用的。selenium 上限制还是多一些,像楼上提到的 playwright 这种直接基于 devtool protocol 的自动化工具对这个支持度会更高,不过听说就是对浏览器版本高度依赖了。
可以坐等官方的 API 文档吧,python 的文档好像还没写完,不过代码上应该是实现了。 https://www.selenium.dev/documentation/webdriver/bidirectional/bidi_api/
下面是我们实际使用的一个例子: mock 一个接口的 403 返回值,验证页面能弹出合适的提示框。
ps: 我们基于 nodejs 的,官方实现还有 bug,坑爹 https://github.com/SeleniumHQ/selenium/issues/10004