4

Я пытаюсь запустить транспортир, подключившись непосредственно к Chrome, а не к селену. Как говорят документы, это возможно, установив directConnect в true в файле конфигурации.транспортир не работает с directConnect

Когда я бегу транспортир с directConnect: true, я получаю:

Using ChromeDriver directly...
[launcher] Running 1 instances of WebDriver Error: spawn ENOENT at errnoException (child_process.js:1001:11) at Process.ChildProcess._handle.onexit (child_process.js:792:34) [launcher] Process exited with error code 1

Если я бегу транспортир без directConnect и вместо того, чтобы указать мой селен URL, все работает нормально.

Я запускаю Protractor версии 1.6.1, версию Chrome версии 41.0.2272.35 beta-m (64-bit) и версию Chromedriver 2.13.0.

+0

Какие версии 'protractor' и' chrome' вы используете? Благодарю. – alecxe

+0

Кроме того, пожалуйста, предоставьте полную трассу. – alecxe

+1

Вы запустили 'webdriver-manager update'? –

ответ

0

ENOENT означает ошибку, НЕТ такой ЛОТНОСТИ и относится к файловой системе.

Проверьте, имеется ли у вас право path, установленное в опции chromeDriver.

capabilities : { chromeOptions: { "debuggerAddress":"127.0.0.1:8088" } }, directConnect: true, chromeDriver : "../bin/chromedriver_2.15.322448.exe"

1

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'] 
    } 
    } 
} 

Надеется, что это помогает.

Смежные вопросы