Selenium 有人用过 selenium+mitmproxy 吗

tester · 2022年04月14日 · 最后由 alex 回复于 2022年04月19日 · 4767 次阅读

就是跑 ui 自动化的同时捕获接口,最后根据接口返回结果过滤

共收到 7 条回复 时间 点赞

用过 appium + mitmproxy

mitmproxy 作代理,selenum 走这个代理,这样所有的请求都会过 mitmproxy,根据自己的需要抓取保存下来即可。

现在 selenium4 可以做到监听 ajax request 了,还可以模拟接口返回,我们目前可以用来做一些 error code 的 mock 了

可以的,大佬有撒高见?

alex 回复

这个可以吗?如果可以的话,那就可以放弃 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

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册