selenium-webdriver - Selenium vs Puppeteer 测试 CEF 应用程序的 UI
问题描述
我计划为我的 CEF 应用程序构建集成测试。集成测试将专注于验证应用程序的 UI。我认为可能有两种方法可以做到:
1. Use Selenium/webdriver + chromedriver: Selenium talks to chromedriver through
webdriver protocol, and chromedriver talks to my CEF application through
Chrome Devtools Protocol
2. Use Puppeteer or similar library that talks to CEF application directly
through Chrome Devtools Protocol
首先,Puppeteer 有没有办法连接到远程 chrome 调试器?大多数用例似乎是在 Puppeteer 中启动无头 chrome,这不是我想要的。
如果两个选项都可行,您更喜欢哪个选项?Puppeteer 似乎具有比 Selenium 更丰富的功能来测试实现 Chrome Devtools 协议的用户代理。Selenium/webdriver 的跨平台优势似乎与测试 CEF 应用程序无关。
解决方案
首先,Puppeteer 有没有办法连接到远程 chrome 调试器?
是的,有一个puppeteer.connect允许连接到已经运行的浏览器。
如果两个选项都可行,您更喜欢哪个选项?
鉴于您只对 Chromium 感兴趣,我会选择 puppeteer。Puppeteer 脚本通常不需要抛出“sleep()”调用 - 相反,有强大的原语来等待条件,例如page.waitForSelector、page.waitFoRequest等
推荐阅读
- javascript - VSCode module.exports 自动完成功能不起作用
- c# - 如何使用存储过程参数在 SQL Server 中存储阿拉伯语?
- typescript - 如何正确要求 typescript 中依赖项的类型?
- mysql - 使用 SQL 显示来自 Wordpress 的存档帖子
- java - 如何修复 Java appium 中的 DesiredCapabilities 错误?
- c# - 为什么 ReadFromEnumerable 方法不起作用?机器学习网络
- android - Android-Keyboard 随机显示 onResume
- assembly - MOV 从内存中注册不能在 nasm 中使用 BITS 32
- mongodb - 如何同时高效地将数据写入 NoSQL 和 RDBMS
- javascript - jQuery 代码没有运行 $(function(){...}); 但没有它会运行