Selenium vs Puppeteer для тестирования пользовательского интерфейса приложения CEF
Я планирую построить интеграционный тест для моего приложения CEF. Интеграционный тест сфокусируется на проверке пользовательского интерфейса приложения. Я думаю, что может быть два способа сделать это:
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? Похоже, что большинство сценариев использования запускает Chrome без головы в Puppeteer, а это не то, чего я хочу.
Если оба варианта выполнимы, какой вариант вы бы предпочли? Puppeteer, кажется, обладает более широкими функциональными возможностями, чем Selenium, для тестирования пользовательского агента, реализующего протокол Chrome Devtools. Кроссплатформенная выгода от Selenium/webdriver кажется несущественной для тестирования приложения CEF.
1 ответ
Прежде всего, есть ли способ для Puppeteer подключиться к удаленному отладчику Chrome?
Да, есть puppeteer.connect, который позволяет подключаться к уже запущенному браузеру.
Если оба варианта выполнимы, какой вариант вы бы предпочли?
Учитывая, что вас интересует только Chromium, я бы выбрал кукловода. Скрипты кукловодов обычно не требуют добавления вызовов sleep() - вместо этого существуют мощные примитивы для ожидания условий, например page.waitForSelector, page.waitFoRequest и т. Д.