Может ли Node.js вызывать Chrome? - PullRequest
8 голосов
/ 10 ноября 2011

Может ли Node.js, запущенный на рабочем столе, порождать окно браузера Chrome?Я хотел бы запустить браузер Chrome, предоставляющий размер и местоположение окна, когда Node.js получает событие.

Является ли команда sys shell только методологией?

Ответы [ 7 ]

12 голосов
/ 22 июля 2015

на MacOSX

var childProc = require('child_process');
childProc.exec('open -a "Google Chrome" http://your_url', callback);
//Or could be: childProc.exec('open -a firefox http://your_url', callback);

Чуть больше:

5 голосов
/ 20 декабря 2011

Я открываю новую вкладку Firefox на окнах здесь: https://github.com/Sequoia/FTWin/blob/master/FTWin.n.js

Самая заметная часть:

var cp = require('child_process'),
    url_to_open = 'http://duckduckgo.com/';

cp.spawn('c:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe', ['-new-tab', url_to_open]);

Примечание:

  1. Передача полный путь firefox к child_process.spawn
  2. Экранирование слешей
  3. Передача ключей / аргументов в firefox.exe: передается как второй параметр cp.spawn в виде массива (по одной записи на коммутатор).

Этот вызов эквивалентен вводу "c:\Program Files (x86)\Mozilla Firefox\firefox.exe" -new-tab http://duckduckgo.com в командной строке Windows.

Для Chrome вам нужно что-то вроде D:\Users\sequoia\AppData\Local\Google\Chrome\Application\chrome.exe --new-tab http://duckduckgo.com/ I 'Позвольте вам самостоятельно разработать версию child_process;)

Рекомендации:

http://peter.sh/experiments/chromium-command-line-switches/

http://nodejs.org/docs/v0.3.1/api/child_processes.html

4 голосов
/ 04 февраля 2017

С opn :

const opn = require('opn');
opn('http://siteurl.com/', {app: ['google chrome']});
2 голосов
/ 24 февраля 2018

Оформление заказа https://www.npmjs.com/package/chrome-launcher:

Запуск Chrome:

const chromeLauncher = require('chrome-launcher');

chromeLauncher.launch({
  startingUrl: 'https://google.com'
}).then(chrome => {
  console.log(`Chrome debugging port running on ${chrome.port}`);
});

Запуск безголового Chrome:

const chromeLauncher = require('chrome-launcher');

chromeLauncher.launch({
  startingUrl: 'https://google.com',
  chromeFlags: ['--headless', '--disable-gpu']
}).then(chrome => {
  console.log(`Chrome debugging port running on ${chrome.port}`);
});

Chrome-Launcher открывает порт удаленной отладки, так что вы также можетеуправлять экземпляром браузера, используя протокол DevTools .

Puppeteer - это еще один способ запуска Chrome и взаимодействия с ним с помощью API высокого уровня.

0 голосов
/ 13 ноября 2011
var exec = require('child_process').exec

exec('open firefox www.google.pt' , function(err) {
if(err){ //process error
}

else{ console.log("success open")
}

})

Это открывает Firefox на странице Google из скрипта nodejs, для Chrome должно быть то же самое

0 голосов
/ 11 ноября 2011

Узел может сделать это только при вызове команды UNIX / Windows, поэтому только команда sys shell.

0 голосов
/ 11 ноября 2011

Да, я бы подумал, что вам нужно сбежать, чтобы укрыться, а затем открыть Chrome.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...