As several major browsers natively support headless mode through
APIs, some software exists to perform browser automation through a unified interface. These include: •
Selenium WebDriver – a
W3C compliant implementation of WebDriver •
Playwright – a
Node.js library to automate Chromium, Firefox and WebKit • Puppeteer – a
Node.js library to automate Chrome or Firefox
Test automation Some
test automation software and frameworks include headless browsers as part of their testing apparati. •
Jasmine uses Selenium by default, but can use WebKit or Headless Chrome, to run browser tests. •
Cypress, a frontend testing framework •
QF-Test, a software tool for automated testing of programs via the graphical user interface where a headless browser can also be used for testing.
Alternatives Another approach is to use software that provides browser APIs. For example,
Deno provides browser APIs as part of its design. For
Node.js, jsdom is the most complete provider. While most are able to support common browser features (HTML parsing,
cookies,
XHR, some JavaScript, etc.), they do not
render the
DOM and have limited support for
DOM events. They usually perform faster than full browsers, but are unable to correctly interpret many popular websites. Another is
HtmlUnit, a headless browser written in Java. HtmlUnit uses the
Rhino engine to provide JavaScript and Ajax support as well as partial rendering capability. ==List of headless browsers==