Need advice about which tool to choose?Ask the StackShare community!

jsdom

466
42
+ 1
0
PhantomJS

819
398
+ 1
18
Add tool

PhantomJS vs jsdom: What are the differences?

What is PhantomJS? Scriptable Headless WebKit. PhantomJS (www.phantomjs.org) is a headless WebKit scriptable with JavaScript. It is used by hundreds of developers and dozens of organizations for web-related development workflow.

What is jsdom? A JavaScript implementation of the WHATWG DOM and HTML standards, for use with node.js. It is a pure-JavaScript implementation of many web standards, notably the WHATWG DOM and HTML Standards, for use with Node.js. In general, the goal of the project is to emulate enough of a subset of a web browser to be useful for testing and scraping real-world web applications.

PhantomJS and jsdom can be primarily classified as "Headless Browsers" tools.

Some of the features offered by PhantomJS are:

  • Multiplatform, available on major operating systems: Windows, Mac OS X, Linux, and other Unices.
  • Fast and native implementation of web standards: DOM, CSS, JavaScript, Canvas, and SVG. No emulation!
  • Pure headless (no X11) on Linux, ideal for continuous integration systems. Also runs on Amazon EC2, Heroku, and Iron.io.

On the other hand, jsdom provides the following key features:

  • Canvas support
  • Encoding sniffing
  • Closing down a jsdom

PhantomJS and jsdom are both open source tools. PhantomJS with 27K GitHub stars and 5.73K forks on GitHub appears to be more popular than jsdom with 12.9K GitHub stars and 1.16K GitHub forks.

Advice on jsdom and PhantomJS
Ankur Loriya
Needs advice
on
PuppeteerPuppeteer
and
PhantomJSPhantomJS

I am using Node 12 for server scripting and have a function to generate PDF and send it to a browser. Currently, we are using PhantomJS to generate a PDF. Some web post shows that we can achieve PDF generation using Puppeteer. I was a bit confused. Should we move to puppeteerJS? Which one is better with NodeJS for generating PDF?

See more
Replies (2)
Recommends
PuppeteerPuppeteer

You better go with puppeteer. It is basically chrome automation tool, written in nodejs. So what you get is PDF, generated by chrome itself. I guess there is hardly better PDF generation tool for the web. Phantomjs is already more or less outdated as technology. It uses some old webkit port that's quite behind in terms of standards and features. It can be replaced with puppeteer for every single task.

See more
Recommends
PuppeteerPuppeteer

I suggest puppeteer to go for. It is simple and easy to set up. Only limitaiton is it can be used only for chrome browser and currently they are looking into expanding into FF. The next thing is Playwright which is just a scale up of Puppeteer. It supports cross browsers.

See more
Get Advice from developers at your company using Private StackShare. Sign up for Private StackShare.
Learn More
Pros of jsdom
Pros of PhantomJS
    Be the first to leave a pro
    • 13
      Scriptable web browser
    • 3
      Depends on QT
    • 2
      No ECMAScript 6

    Sign up to add or upvote prosMake informed product decisions

    What is jsdom?

    It is a pure-JavaScript implementation of many web standards, notably the WHATWG DOM and HTML Standards, for use with Node.js. In general, the goal of the project is to emulate enough of a subset of a web browser to be useful for testing and scraping real-world web applications.

    What is PhantomJS?

    PhantomJS is a headless WebKit scriptable with JavaScript. It is used by hundreds of developers and dozens of organizations for web-related development workflow.

    Need advice about which tool to choose?Ask the StackShare community!

    What companies use jsdom?
    What companies use PhantomJS?
    See which teams inside your own company are using jsdom or PhantomJS.
    Sign up for Private StackShareLearn More

    Sign up to get full access to all the companiesMake informed product decisions

    What tools integrate with jsdom?
    What tools integrate with PhantomJS?

    Sign up to get full access to all the tool integrationsMake informed product decisions

    Blog Posts

    What are some alternatives to jsdom and PhantomJS?
    Selenium
    Selenium automates browsers. That's it! What you do with that power is entirely up to you. Primarily, it is for automating web applications for testing purposes, but is certainly not limited to just that. Boring web-based administration tasks can (and should!) also be automated as well.
    Enzyme
    Enzyme is a JavaScript Testing utility for React that makes it easier to assert, manipulate, and traverse your React Components' output.
    Domino
    Use our cloud-hosted infrastructure to securely run your code on powerful hardware with a single command — without any changes to your code. If you have your own infrastructure, our Enterprise offering provides powerful, easy-to-use cluster management functionality behind your firewall.
    Puppeteer
    Puppeteer is a Node library which provides a high-level API to control headless Chrome over the DevTools Protocol. It can also be configured to use full (non-headless) Chrome.
    Playwright
    It is a Node library to automate the Chromium, WebKit and Firefox browsers with a single API. It enables cross-browser web automation that is ever-green, capable, reliable and fast.
    See all alternatives