Get Advice Icon

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

jsdom
jsdom

9
2
+ 1
0
PhantomJS
PhantomJS

334
247
+ 1
17
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.

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 (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.
Get Advice Icon

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

Why do developers choose jsdom?
Why do developers choose PhantomJS?
    Be the first to leave a pro
      Be the first to leave a con
        Be the first to leave a con
        What companies use jsdom?
        What companies use PhantomJS?

        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

        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.
        CasperJS
        CasperJS is a browser navigation scripting & testing utility written in Javascript for PhantomJS or SlimerJS.
        See all alternatives
        Decisions about jsdom and PhantomJS
        Tim Abbott
        Tim Abbott
        Founder at Zulip ยท | 3 upvotes ยท 167.9K views
        atZulipZulip
        CasperJS
        CasperJS
        PhantomJS
        PhantomJS
        Node.js
        Node.js

        We use CasperJS because we adopted it back in 2013 for JavaScript frontend testing. It was a really nice system back then compared to what else was out there; you had PhantomJS as a programmable browser that actually rendered CSS and everything, it was really fast (speed is a big downside of e.g. Selenium), and it was possible to make non-flaky frontend integration tests with it.

        I wouldn't recommend it today, because PhantomJS is a basically dead project, and as a result, so is CasperJS. I expect we'll migrate to something else. We haven't in large part because 95% of our new tests are written with a simple Node.js-based unit testing framework we use that run 35K lines of unit tests covering most of our JS codebase in 3.6 seconds. And for the things where we want an integration test, CasperJS does work, and I think there's a good chance that waiting another year or two will result in our being able to switch to a much better option than what we'd get if we migrated now.

        See more
        Interest over time
        Reviews of jsdom and PhantomJS
        No reviews found
        How developers use jsdom and PhantomJS
        Avatar of fadingdust
        fadingdust uses PhantomJSPhantomJS

        We run PhantomJS as part of the CircleCI testing, comparing against other branches to ensure changes are limited to their intended scope.

        Avatar of Nough You
        Nough You uses PhantomJSPhantomJS

        Headless browsing, headless chrome is good too, this is not supported anymore.

        Avatar of ByeongGi
        ByeongGi uses PhantomJSPhantomJS
        • ์›น ํฌ๋กค๋ง(์Šคํ”„๋žฉํ•‘) ๊ณต๋ถ€๋ฅผ ์œ„ํ•ด์„œ ๊ฐ€์ƒ ๋ธŒ๋ผ์šฐ์ ธ์—์„œ ์ œ์ด์ฟผ๋ฆฌ๋ฅผ ๋กœ๋”ฉํ•˜์—ฌ ํŽ˜์ด์Šค๋ถ์—์„œ ๋ฌดํ•œ ์Šคํฌ๋กค์‹œ์— ๋ฐœ์ƒ ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํž˜
        Avatar of Veggie Sailor
        Veggie Sailor uses PhantomJSPhantomJS

        Functional tests / screenshots generation.

        Avatar of Alexpts Pts
        Alexpts Pts uses PhantomJSPhantomJS
        How much does jsdom cost?
        How much does PhantomJS cost?
        Pricing unavailable
        Pricing unavailable
        News about jsdom
        More news