Update: Хотя решение ниже работал для меня, после разговора с транспортир разработчика, я понял, что если я бегу webdriver-manager update
установить локальную chromedriver, то мне не нужно, чтобы установить chromeDriver
в моей конфигурации транспортира.
Я была такая же проблема и решить ее путем изменения chromeDriver
путь установки в транспортир-conf.js в зависимости от того, был ли я на Windows, или OSX/Linux.
Решение и запись ниже предполагают, что вы используете хромированный ремень, предоставленный npm install chromedriver
. Также этот раствор работал с транспортиром 3.2.2
и хромированным кратером 2.21.2
.
Protractor + chromedriver работал на OSX и Linux, но я получал ошибки ENOENT в Windows. Я подал вопрос here и также документировал обходной путь.
вопрос (я думаю), что childProcess.spawn имеет проблемы в ОС Windows (см список вопросов here) и файл node_modules/chromedriver/bin/chromedriver
не будет правильно работать, когда вызывается через childProcess.spawn
- вероятно, потому, что этот файл не является исполняемым и Windows, Безразлично Не знаю, как использовать двоичный файл node
для интерпретации файла.
Обходной путь - обеспечить путь к исполняемому файлу Windows при работе в Windows. Это достаточно просто - хотя хак - варьировать chromeDriver
ARG в транспортире-conf.js, как показано ниже:
транспортир-conf.js для всех трех ОС:
var chromeDriverPath = process.platform === 'win32' ? 'node_modules/chromedriver/lib/chromedriver/chromedriver.exe' : 'node_modules/chromedriver/bin/chromedriver';
exports.config = {
directConnect: true,
chromeDriver: chromeDriverPath,
specs: [
'features/*.feature'
],
capabilities: {
browserName: 'chrome',
platform: 'ANY',
chromeOptions: {
args: ['--test-type']
}
}
}
Надеется, что это помогает.
Какие версии 'protractor' и' chrome' вы используете? Благодарю. – alecxe
Кроме того, пожалуйста, предоставьте полную трассу. – alecxe
Вы запустили 'webdriver-manager update'? –