📝 面试求职: 「面试试题小程序」 ,内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)
📝 职场经验干货:
NoDriver 是一款基于无浏览器驱动的浏览器自动化工具,它的最大特点是无需下载或配置浏览器驱动,即可直接控制浏览器进行自动化操作。
与传统的 Selenium 不同,NoDriver 采用了直接调用浏览器调试协议(如 Chrome DevTools Protocol)的方式,减少了驱动兼容性和版本匹配的问题。
项目地址:
https://github.com/ultrafunkamsterdam/nodriver
主要功能
NoDriver 主要功能包含:
-
免驱动运行:直接控制已安装的 Chrome / Edge 等浏览器,无需额外配置驱动程序。
-
页面元素操作:支持点击、输入、拖拽、滚动、上传文件等常见浏览器操作。
-
脚本执行:可在浏览器中执行 JavaScript 脚本,获取或修改页面内容。
-
网络请求监听与修改:可拦截请求、注入响应数据,方便做爬虫与接口调试。
-
截图与 PDF 生成:支持整页或指定区域截图,以及导出为 PDF。
-
多标签、多会话管理:方便同时控制多个浏览器窗口或标签页。
适用场景
NoDriver 的免驱动特性,使它在以下场景中非常实用:
-
Web 自动化测试
快速构建端到端(E2E)测试,减少驱动安装与版本匹配问题。 -
数据采集与爬虫
-
页面需要 JavaScript 渲染的动态内容
-
网站有反爬虫机制,需要模拟真实浏览器访问
-
接口调试与前端联调
拦截请求、注入数据,模拟接口响应,方便前端开发测试。 -
批量处理网页任务
批量下载文件、批量截图、批量填写表单等场景。 -
逆向分析与安全测试
利用 DevTools 协议监听网络请求、执行自定义脚本,辅助分析网页逻辑。
实战例子
以下是一个简单的 NoDriver 使用示例:
import nodriver as uc
import time
async def main():
browser = await uc.start()
tab = await browser.get('https://www.baidu.com')
create_account = await tab.find("百度一下", best_match=True)
await create_account.click()
time.sleep(100)
if __name__ == '__main__':
# since asyncio.run never worked (for me)
uc.loop().run_until_complete(main())
更多进阶功能,可以参考官方例子
总结
| 对比项 | NoDriver | Selenium |
| 驱动依赖 | 免驱动,直接调用浏览器调试协议 | 需要下载对应版本的浏览器驱动(如 ChromeDriver) |
| 启动速度 | 更快(省去驱动加载) | 相对较慢 |
| 稳定性 | 依赖浏览器版本稳定性 | 依赖驱动与浏览器版本匹配 |
| 功能扩展 | 原生支持网络拦截、JS 注入等高级功能 | 需额外配置或使用第三方库 |
| 学习成本 | 接口相对简洁,但文档较少 | 文档丰富,学习资料多 |
| 生态与兼容性 | 新兴项目,生态尚在发展 | 成熟稳定,生态庞大 |
如果你想快速上手自动化、免去驱动安装的烦恼,且对生态依赖不多,NoDriver 是个不错的选择。
但如果你需要跨浏览器、多语言支持,以及更成熟的社区与插件,Selenium 依旧是稳妥方案。
未来,随着 DevTools 协议的普及,像 NoDriver 这样的免驱动自动化工具可能会逐渐成为主流。
最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

1万+

被折叠的 条评论
为什么被折叠?



