I am building a scraper to make JS single page applications easily crawlable.
After some incredible frustration with PhantomJS (memory leaks, outdated webkit, undead processes, among many other problems) I decided to switch to NightmareJS which can do the same things but uses Electron under the hood. Electron has a lot of advantages (uses latest chromium, is a lot faster) but it needs an X server to run.
As I need to make it work under ubuntu server, I followed this gist . Now I have a great EC2 instance with everything ready to run an headless electron
xvfb-run electron
The point is that I need to run this through nightmareJS (which I will use in a node.js server script). I was wondering how I could pass parameters to nightmare in order to start electron through svfb
Nightmare is a browser automation library. It's a solid choice for automating smoke tests to do all of the clicks, text inputs, and visual checking that a human can do. Under the hood, it uses Electron as a headless browser.
js is a high-level browser automation library, designed to automate browsing tasks for sites that don't have APIs. The library itself is a wrapper around Electron, which Nightmare. js uses as a browser to interact with web sites.
I don't know if there is a better way, but at least for my works run the main process using xvfb-run command:
$ xvfb-run node --harmony simple-service.js
Worker 12153 is online
Worker 12155 is online
Worker 12154 is online
Worker 12156 is online
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With