Firefox의 헤드리스 모드 (Node.js)

다음 페이지와 동일한 작업을 Node.js에서 수행해 보았습니다.
Firefox의 헤드리스 모드 (python3)
아직 Javascript를 실행할 수 없습니다. timeout 조정이 필요합니다.

headless_firefox.js
// ---------------------------------------------------------------
//  headless_firefox.js
//
//                      Aug/13/2018
//
// ---------------------------------------------------------------
const fs = require('fs')

const { Builder, By, Key, promise, until } = require('selenium-webdriver')
const {promisify} = require('util')

const webdriver = require('selenium-webdriver')

const firefox = require('selenium-webdriver/firefox')
promise.USE_PROMISE_MANAGER = false

var firefoxOptions = new firefox.Options()
firefoxOptions.setBinary('/usr/bin/firefox')
firefoxOptions.headless()
const driver = new Builder()
.forBrowser('firefox')
.setFirefoxOptions(firefoxOptions)
.build();


// ---------------------------------------------------------------
async function main()
{
    const url_target='https://ekzemplaro.org/storytelling/'
    await driver.get(url_target)
    await driver.wait(async () => {
    const readyState = await driver.executeScript('return document.readyState');
    return readyState === 'complete';
  });
    const data = await driver.takeScreenshot();
    await promisify(fs.writeFile)('screenshot.png', data, 'base64');
    await driver.quit();
}

// ---------------------------------------------------------------
main ()
// ---------------------------------------------------------------

실행 방법
node headless_firefox.js

screenshot.png가 생성됩니다.

실행 결과

좋은 웹페이지 즐겨찾기