Заставляем Cypress запускать Headless Electron с помощью протокола Chrome DevTools

Версия Cypress ^3.8.3

Используя Chrome, я могу настроить и подключить к порту удаленной отладки.

В cypress/plugins/index.js

  if (browser.name === "chrome") {            
    args.push("--remote-debugging-port=9222");
    return args;
  }

При запуске кипариса я могу добавить префикс переменной среды CYPRESS_REMOTE_DEBUGGING_PORT=9222.

Однако, когда я пытаюсь сделать то же самое с Electron, у меня никогда не получается соединение.

  if (browser.name === "electron") {
    args.webPreferences = {
      remoteDebuggingPort: 9222
    };
    //----OR------
    args.remoteDebuggingPort = 9222;
    return args;
  }

Я чувствую, что упускаю что-то очень простое! Любые идеи о том, как заставить Cypress Electron запустить удаленный порт отладки, были бы замечательными!

1 ответ

Решение

Electron не прослушивает сообщения CDP на порту, метод, который вы пытаетесь использовать, пока ограничен использованием CDP с автономными браузерами.


Однако, если вам просто нужно отправлять команды CDP из ваших тестов, а не подписываться на события, есть недокументированный и неподдерживаемый способ сделать это черезCypress.automation('remote:debugger:protocol', { command, params }).

Пример: https://github.com/cypress-io/cypress/blob/d92d3c0bab21cbd4ff96c24848779461f183a6d6/packages/server/test/support/fixtures/projects/e2e/cypress/support/index.js

Другие вопросы по тегам