运行在桌面上的Node.js是否可以生成Chrome浏览器窗口?我想在Node.js接收事件时启动一个提供窗口大小和位置的Chrome浏览器。Node.js可以调用Chrome吗?
sys shell命令是唯一的方法吗?
运行在桌面上的Node.js是否可以生成Chrome浏览器窗口?我想在Node.js接收事件时启动一个提供窗口大小和位置的Chrome浏览器。Node.js可以调用Chrome吗?
sys shell命令是唯一的方法吗?
var exec = require('child_process').exec
exec('open firefox www.google.pt' , function(err) {
if(err){ //process error
}
else{ console.log("success open")
}
})
这将打开火狐在谷歌网页从的NodeJS脚本,铬应该是相同的
什么是“开放”命令?这是OSX吗? –
'open chrome'在我的Mac OSX 10.8.2上没有做任何事情(显然安装了Chrome) –
不适用于Chrome浏览器! – Adaptabi
是的,我想你会需要逃离壳然后打开铬。
节点只能调用UNIX/Windows命令,因此只能使用sys shell命令。
我打开窗户一新的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]);
注:
这个调用相当于在Windows命令行键入"c:\Program Files (x86)\Mozilla Firefox\firefox.exe" -new-tab http://duckduckgo.com
。
对于铬,你想要的东西就像D:\Users\sequoia\AppData\Local\Google\Chrome\Application\chrome.exe --new-tab http://duckduckgo.com/
我会让你的工作你自己的child_process版本;)
参考文献:
要启动Chrome浏览器与Windows中的选项我试过, 'cp.spawn('c:\\ Program Files(x86)\\ Google \\ Chrome \\ Application \\ chrome.exe',['--user-data-dir ','C:\ chrome-path']'看起来'C:\ chrome-path'在这种情况下被认为是url。任何想法都可以解决这个问题?谢谢! – Prasad19sara
尝试'['--user-data-dir = C:\ chrome-path']'?或者换成'['--user-data-dir',''C:\ chrome-path'']'或者尝试转义斜线'['--user -data-dir','C:\\ chrome-path']'祝好运! –
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);
多一点:
随着opn:
const opn = require('opn');
opn('http://siteurl.com/', {app: ['google chrome']});
结帐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}`);
});
启动无头铬:
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}`);
});
铬发射器打开一个远程调试端口,因此你也可以使用DevTools protocol控制浏览器实例。
Puppeteer是另一种启动Chrome并使用高级API与其交互的方式。
您想在哪个操作系统上启动Chrome? –