Итак, имеется nodejs скрипт, который, используя selenium webdriver, запускает браузерный тест. Он нормально запускается из консоли. Но когда я пытаюсь запустить его из контроллера через exec или shell_exec, то получаю кучу ошибок, природу которых не совсем понимаю, так как упомянул уже ранее, что через терминал всё работает хорошо.
Код скрипта:
"use strict";
require('chromedriver');
const webdriver = require('selenium-webdriver');
const chrome = require('selenium-webdriver/chrome');
var browser = new webdriver.Builder().forBrowser('chrome')
.setChromeOptions(new chrome.Options()
.addArguments('--no-sandbox')
.addArguments('--headless')
.addArguments('--disable-dev-shm-usage')
)
.build();
browser.get('https://some_url.com');
Так запускаю скрипт в контроллере:
exec('/usr/bin/node ../../admin-test/test.js');
И сама ошибка, которая возникает при запуске:
Array
(
[0] => /var/www/xxe.loc/admin-test/node_modules/selenium-webdriver/lib/promise.js:2626
[1] => throw error;
[2] => ^
[3] =>
[4] => WebDriverError: unknown error: Chrome failed to start: exited abnormally
[5] => (unknown error: DevToolsActivePort file doesn't exist)
[6] => (The process started from chrome location /opt/google/chrome/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
[7] => (Driver info: chromedriver=77.0.3865.40 (f484704e052e0b556f8030b65b953dce96503217-refs/branch-heads/3865@{#442}),platform=Linux 4.19.36-1-MANJARO x86_64)
[8] => at Object.checkLegacyResponse (/var/www/xxe.loc/admin-test/node_modules/selenium-webdriver/lib/error.js:546:15)
[9] => at parseHttpResponse (/var/www/xxe.loc/admin-test/node_modules/selenium-webdriver/lib/http.js:509:13)
[10] => at doSend.then.response (/var/www/xxe.loc/admin-test/node_modules/selenium-webdriver/lib/http.js:441:30)
[11] => at processTicksAndRejections (internal/process/task_queues.js:86:5)
[12] => From: Task: WebDriver.createSession()
[13] => at Function.createSession (/var/www/xxe.loc/admin-test/node_modules/selenium-webdriver/lib/webdriver.js:769:24)
[14] => at Function.createSession (/var/www/xxe.loc/admin-test/node_modules/selenium-webdriver/chrome.js:761:15)
[15] => at createDriver (/var/www/xxe.loc/admin-test/node_modules/selenium-webdriver/index.js:170:33)
[16] => at Builder.build (/var/www/xxe.loc/admin-test/node_modules/selenium-webdriver/index.js:642:16)
[17] => at Object.<anonymous> (/var/www/xxe.loc/admin-test/test_lab.js:13:14)
[18] => at Module._compile (internal/modules/cjs/loader.js:816:30)
[19] => at Object.Module._extensions..js (internal/modules/cjs/loader.js:827:10)
[20] => at Module.load (internal/modules/cjs/loader.js:685:32)
[21] => at Function.Module._load (internal/modules/cjs/loader.js:620:12)
[22] => at Function.Module.runMain (internal/modules/cjs/loader.js:877:12)
)