Alternatives to jsdom logo

Alternatives to jsdom

Selenium, PhantomJS, Enzyme, Domino, and Puppeteer are the most popular alternatives and competitors to jsdom.
9
2
+ 1
0

What is jsdom and what are its top alternatives?

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.
jsdom is a tool in the Headless Browsers category of a tech stack.
jsdom is an open source tool with 13.5K GitHub stars and 1.2K GitHub forks. Here鈥檚 a link to jsdom's open source repository on GitHub

jsdom alternatives & related posts

related Selenium posts

Kamil Kowalski
Kamil Kowalski
Engineering Manager at Fresha | 20 upvotes 46K views
atFresha EngineeringFresha Engineering
Cypress
Cypress
JavaScript
JavaScript
Elixir
Elixir
Ruby
Ruby
Java
Java
Selenium
Selenium

When you think about test automation, it鈥檚 crucial to make it everyone鈥檚 responsibility (not just QA Engineers'). We started with Selenium and Java, but with our platform revolving around Ruby, Elixir and JavaScript, QA Engineers were left alone to automate tests. Cypress was the answer, as we could switch to JS and simply involve more people from day one. There's a downside too, as it meant testing on Chrome only, but that was "good enough" for us + if really needed we can always cover some specific cases in a different way.

See more
Jorge Quiros
Jorge Quiros
SR QA Automation Engineer at Indecomm | 9 upvotes 318.8K views
Protractor
Protractor
Jasmine
Jasmine
JavaScript
JavaScript
Selenium
Selenium
Cypress
Cypress
#Testing
#Cypress
#Qaautomation

This is a trending topic on Automation testing for E2E web applications.

I have used Protractor and Jasmine for automation testing frameworks in JavaScript by using the Selenium web driver manager.

Now, new guy in town Cypress does not use Selenium and runs directly in your app without any json wire protrocol, but it does not support parallel testing or mobile testing.

Have you experienced both? Should I stick with old and known ?

#testing cypress #selenium qaautomation #qa

See more
PhantomJS logo

PhantomJS

333
245
17
333
245
+ 1
17
Scriptable Headless WebKit
PhantomJS logo
PhantomJS
VS
jsdom logo
jsdom

related PhantomJS posts

Tim Abbott
Tim Abbott
Founder at Zulip | 3 upvotes 166.4K 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
Enzyme logo

Enzyme

262
178
0
262
178
+ 1
0
JavaScript Testing utilities for React, by Airbnb
    Be the first to leave a pro
    Enzyme logo
    Enzyme
    VS
    jsdom logo
    jsdom

    related Enzyme posts

    Russel Werner
    Russel Werner
    Lead Engineer at StackShare | 6 upvotes 77.1K views
    atStackShareStackShare
    Jest
    Jest
    Enzyme
    Enzyme
    React Storybook
    React Storybook
    Happo.io
    Happo.io
    Percy
    Percy

    We use Jest because when we rebooted our "front end" stack earlier last year, we need to have a testing solution (we didn't have any front-end tests before that!). Jest is fast and convenient and it has plenty of community support behind it. It let's us run our unit tests with Enzyme and snapshot tests.

    This is an area that we are constantly reviewing to see what can be improved, both in terms of developer needs, accuracy, test maintainability, and coverage.

    I'm currently exploring using React Storybook to be the record of snapshot tests and using some online services, such as Happo.io and Percy in our CI pipeline.

    See more
    Dschinkel Schinkel
    Dschinkel Schinkel
    Mocha
    Mocha
    Jest
    Jest
    JavaScript
    JavaScript
    React
    React
    Enzyme
    Enzyme
    #Tdd
    #Bdd
    #Testdrivendevelopment

    I use both mocha and Jest because:

    • I don't care whether teams use Jest or Mocha. But jest is way too overhyped. Most devs are writing integration tests and think that it's so much better but frankly I don't write integration tests as the way to get both design feedback and confidence when I code. I adhere to the test pyramid, not ice cream cone or the dumb "trophy"

    • I TDD, so I only ever use the "API" of test frameworks. I don't do a lot of integration tests for TDD and all the bells and whistles Jest provides you from the command-line I just don't need. And I certainly do not care about or touch Jest Snapshots, I despise them

    • My tests are fast enough because I write isolated tests with TDD, so I don't run into performance issues. Example: I write my tests in a way that I can run 300 tests in literally 1 second with mocha. So the Jest ability to pinpoint and only run those tests which are affected by code changes. I want to run all of them every time when I TDD. It's a different mindset when you TDD

    • I also mainly code in IntelliJ or WebStorm because I feel the tools in that IDE far surpass VSCode and I also love running the test UI runner in it vs. lousy command-line

    • I feel both mocha and Jest read just fine in terms of code readability. Jest might have shorter assertion syntax but I don't really care. I just care that I can read the damn test and my tests are written well and my test descriptions, as well as the code itself including constants represent business language, not technical. I care most about BDD, clean code, 4 rules of simple design, and SOLID

    • I don't like using mock frameworks so no I don't use Jest's Mocking framework. I don't have to mock a lot in my tests due to the nature of how I strive to code...I keep my design simple and modular using principals such as clean code and 4 rules of simple design. If I must mock, I create very simple custom mocks with JS

    • On the contrary to the belief that integration tests and mount are the way to go (this belief drives me absolutely crazy, especially Dodd's promoting that), I TDD with shallow & enzyme. My tests are simple. My design is driven by my tests and my tests give me quick and useful feedback. I have a course I'm working on coming out soon on TDD with React to show you how to truly test the FE and why the ice cream cone and trophy suck (you're being scammed people). Watch for that here: https://twitter.com/DaveSchinkel/status/1062267649235791873

    Don't forget to upvote this post!

    Mocha Jest JavaScript React @jsdom Enzyme #tdd #bdd #testdrivendevelopment

    See more
    Domino logo

    Domino

    6
    6
    0
    6
    6
    + 1
    0
    A PaaS for data science - easily run R, Python or Matlab code in the cloud with automatic...
      Be the first to leave a pro
      Domino logo
      Domino
      VS
      jsdom logo
      jsdom
      Puppeteer logo

      Puppeteer

      135
      83
      3
      135
      83
      + 1
      3
      Headless Chrome Node API
      Puppeteer logo
      Puppeteer
      VS
      jsdom logo
      jsdom
      CasperJS logo

      CasperJS

      41
      39
      0
      41
      39
      + 1
      0
      Navigation scripting & testing for PhantomJS and SlimerJS
        Be the first to leave a pro
        CasperJS logo
        CasperJS
        VS
        jsdom logo
        jsdom

        related CasperJS posts

        Tim Abbott
        Tim Abbott
        Founder at Zulip | 3 upvotes 166.4K 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
        Chromeless logo

        Chromeless

        6
        10
        0
        6
        10
        + 1
        0
        馃枼 Chrome automation made simple. Runs locally or headless on AWS Lambda.
          Be the first to leave a pro
          Chromeless logo
          Chromeless
          VS
          jsdom logo
          jsdom
          Serverless Chrome logo

          Serverless Chrome

          6
          13
          0
          6
          13
          + 1
          0
          Headless Chrome on AWS Lambda
            Be the first to leave a pro
            Serverless Chrome logo
            Serverless Chrome
            VS
            jsdom logo
            jsdom
            Splash logo

            Splash

            4
            1
            0
            4
            1
            + 1
            0
            Headless browser that executes JavaScript for people crawling websites
              Be the first to leave a pro
              Splash logo
              Splash
              VS
              jsdom logo
              jsdom
              SlimerJS logo

              SlimerJS

              3
              1
              0
              3
              1
              + 1
              0
              A scriptable browser for Web developers
                Be the first to leave a pro
                SlimerJS logo
                SlimerJS
                VS
                jsdom logo
                jsdom