Alternatives to Selenium logo

Alternatives to Selenium

Protractor, Cypress, Nightwatchjs, Puppeteer, and Cucumber are the most popular alternatives and competitors to Selenium.
9.9K
7.5K
+ 1
517

What is Selenium and what are its top alternatives?

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.
Selenium is a tool in the Browser Testing category of a tech stack.
Selenium is an open source tool with 21K GitHub stars and 6.4K GitHub forks. Here’s a link to Selenium's open source repository on GitHub

Top Alternatives to Selenium

  • Protractor

    Protractor

    Protractor is an end-to-end test framework for Angular and AngularJS applications. Protractor runs tests against your application running in a real browser, interacting with it as a user would. ...

  • Cypress

    Cypress

    Cypress is a front end automated testing application created for the modern web. Cypress is built on a new architecture and runs in the same run-loop as the application being tested. As a result Cypress provides better, faster, and more reliable testing for anything that runs in a browser. Cypress works on any front-end framework or website. ...

  • Nightwatchjs

    Nightwatchjs

    Nightwatch.js is an easy to use Node.js based End-to-End (E2E) testing solution for browser based apps and websites. It uses the powerful Selenium WebDriver API to perform commands and assertions on DOM elements. ...

  • Puppeteer

    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. ...

  • Cucumber

    Cucumber

    Cucumber is a tool that supports Behaviour-Driven Development (BDD) - a software development process that aims to enhance software quality and reduce maintenance costs. ...

  • PhantomJS

    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. ...

  • Python

    Python

    Python is a general purpose programming language created by Guido Van Rossum. Python is most praised for its elegant syntax and readable code, if you are just beginning your programming career python suits you best. ...

  • TestCafe

    TestCafe

    It is a pure node.js end-to-end solution for testing web apps. It takes care of all the stages: starting browsers, running tests, gathering test results and generating reports. ...

Selenium alternatives & related posts

Protractor logo

Protractor

483
411
21
End-to-end test framework for Angular and AngularJS applications
483
411
+ 1
21
PROS OF PROTRACTOR
  • 7
    Easy setup
  • 6
    Quick tests implementation
  • 3
    Promise support
  • 3
    Open source
  • 2
    Flexible
CONS OF PROTRACTOR
  • 3
    Limited

related Protractor posts

Raziel Alron
Automation Engineer at Tipalti · | 7 upvotes · 74.4K views

Currently, we are using Protractor in our project. Since Protractor isn't updated anymore, we are looking for a new tool. The strongest suggestions are WebdriverIO or Puppeteer. Please help me figure out what tool would make the transition fastest and easiest. Please note that Protractor uses its own locator system, and we want the switch to be as simple as possible. Thank you!

See more
Cypress logo

Cypress

1.1K
1.3K
88
Better, faster, and more reliable testing for anything that runs in a browser.
1.1K
1.3K
+ 1
88
PROS OF CYPRESS
  • 22
    Open source
  • 16
    Great documentation
  • 15
    Fast
  • 14
    Simple usage
  • 9
    Cross Browser testing
  • 8
    Easy us with CI
  • 4
    Npm install cypress only
CONS OF CYPRESS
  • 16
    Cypress is weak at cross-browser testing
  • 11
    Switch tabs : Cypress can'nt support
  • 10
    No iFrame support
  • 8
    No xPath support
  • 8
    No file upload support
  • 8
    No page object support
  • 8
    No multiple domain support
  • 7
    Cypress doesn't support native app
  • 7
    No support for multiple tab control
  • 7
    Re-run failed tests retries not supported yet
  • 6
    No support for Safari
  • 6
    No support for multiple browser control
  • 4
    $20/user/thread for reports
  • 4
    Adobe
  • 4
    Not freeware
  • 3
    Using a non-standard automation protocol
  • 3
    No 'WD wire protocol' support

related Cypress posts

Kamil Kowalski
Lead Architect at Fresha · | 27 upvotes · 943.9K views

When you think about test automation, it’s crucial to make it everyone’s 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
Robert Zuber

We are in the process of adopting Next.js as our React framework and using Storybook to help build our React components in isolation. This new part of our frontend is written in TypeScript, and we use Emotion for CSS/styling. For delivering data, we use GraphQL and Apollo. Jest, Percy, and Cypress are used for testing.

See more
Nightwatchjs logo

Nightwatchjs

127
233
5
Automated testing and continous integration framework based on node.js and selenium webdriver
127
233
+ 1
5
PROS OF NIGHTWATCHJS
  • 2
    Automates browsers
  • 1
    Better cross browser (use selenium)
  • 1
    Open source
  • 1
    Testing
CONS OF NIGHTWATCHJS
  • 2
    No automatic wait

related Nightwatchjs posts

Benjamin Poon
QA Manager - Engineering at HBC Digital · | 8 upvotes · 672.5K views

For our digital QA organization to support a complex hybrid monolith/microservice architecture, our team took on the lofty goal of building out a commonized UI test automation framework. One of the primary requisites included a technical minimalist threshold such that an engineer or analyst with fundamental knowledge of JavaScript could automate their tests with greater ease. Just to list a few: - Nightwatchjs - Selenium - Cucumber - GitHub - Go.CD - Docker - ExpressJS - React - PostgreSQL

With this structure, we're able to combine the automation efforts of each team member into a centralized repository while also providing new relevant metrics to business owners.

See more

Hello, I am currently looking for a tool for automation tests in order to implement it into our CI/CD pipeline for both web development but also for Android and iOS. I considered Cypress but I need compatibility with Safari. I have knowledge of Java, C#, and JavaScript so the language isn't an issue. Also looked into Nightwatchjs and Puppeteer but found these 3 above more interesting.

My main concern is:

  • Browser support - Desktop - needs to support Google Chrome, Safari, Firefox and Microsoft Edge (minimum)
  • Browser support - Mobile - Safari and Chrome (minimum)
  • App - Android and iOS

If possible i would like to avoid using another tool for mobile (like Appium)

What do you use? What is the one you recommend (even another from the ones mentioned)

Thank you very much for your help!

See more
Puppeteer logo

Puppeteer

305
422
21
Headless Chrome Node API
305
422
+ 1
21
PROS OF PUPPETEER
  • 8
    Scriptable web browser
  • 8
    Very well documented
  • 5
    Promise based
CONS OF PUPPETEER
  • 7
    Chrome only

related Puppeteer posts

Raziel Alron
Automation Engineer at Tipalti · | 7 upvotes · 74.4K views

Currently, we are using Protractor in our project. Since Protractor isn't updated anymore, we are looking for a new tool. The strongest suggestions are WebdriverIO or Puppeteer. Please help me figure out what tool would make the transition fastest and easiest. Please note that Protractor uses its own locator system, and we want the switch to be as simple as possible. Thank you!

See more

I work in a company building web apps with AngularJS. I started using Selenium for tests automation, as I am more familiar with Python. However, I found some difficulties, like the impossibility of using IDs and fixed lists of classes, ending up with using xpaths most, which unfortunately could change with fixes and modifications in the code.

So, I started using Puppeteer, but I am still learning. It seems easier to find elements on the webpage, even if the creation and managing of arrays of elements seem to be a little bit more complicated than in Selenium, but it could be also due to my poor knowledge of JavaScript.

Any comments on this comparison and also on comparisons with similar tools are welcome! :)

See more
Cucumber logo

Cucumber

680
631
22
Simple, human collaboration.
680
631
+ 1
22
PROS OF CUCUMBER
  • 16
    Simple Syntax
  • 2
    Nice report
  • 2
    Simple usage
  • 2
    Huge community
CONS OF CUCUMBER
    Be the first to leave a con

    related Cucumber posts

    Benjamin Poon
    QA Manager - Engineering at HBC Digital · | 8 upvotes · 672.5K views

    For our digital QA organization to support a complex hybrid monolith/microservice architecture, our team took on the lofty goal of building out a commonized UI test automation framework. One of the primary requisites included a technical minimalist threshold such that an engineer or analyst with fundamental knowledge of JavaScript could automate their tests with greater ease. Just to list a few: - Nightwatchjs - Selenium - Cucumber - GitHub - Go.CD - Docker - ExpressJS - React - PostgreSQL

    With this structure, we're able to combine the automation efforts of each team member into a centralized repository while also providing new relevant metrics to business owners.

    See more
    Sarah Elson
    Product Growth at LambdaTest · | 4 upvotes · 283.3K views

    @producthunt LambdaTest Selenium JavaScript Java Python PHP Cucumber TeamCity CircleCI With this new release of LambdaTest automation, you can run tests across an Online Selenium Grid of 2000+ browsers and OS combinations to perform cross browser testing. This saves you from the pain of maintaining the infrastructure and also saves you the licensing costs for browsers and operating systems. #testing #Seleniumgrid #Selenium #testautomation #automation #webdriver #producthunt hunted

    See more
    PhantomJS logo

    PhantomJS

    458
    362
    17
    Scriptable Headless WebKit
    458
    362
    + 1
    17
    PROS OF PHANTOMJS
    • 13
      Scriptable web browser
    • 2
      No ECMAScript 6
    • 2
      Depends on QT
    CONS OF PHANTOMJS
      Be the first to leave a con

      related PhantomJS posts

      Tim Abbott

      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
      Python logo

      Python

      131.7K
      105.8K
      6.5K
      A clear and powerful object-oriented programming language, comparable to Perl, Ruby, Scheme, or Java.
      131.7K
      105.8K
      + 1
      6.5K
      PROS OF PYTHON
      • 1.1K
        Great libraries
      • 928
        Readable code
      • 817
        Beautiful code
      • 768
        Rapid development
      • 671
        Large community
      • 418
        Open source
      • 379
        Elegant
      • 268
        Great community
      • 261
        Object oriented
      • 209
        Dynamic typing
      • 70
        Great standard library
      • 52
        Very fast
      • 48
        Functional programming
      • 35
        Scientific computing
      • 33
        Easy to learn
      • 30
        Great documentation
      • 25
        Matlab alternative
      • 23
        Productivity
      • 22
        Easy to read
      • 19
        Simple is better than complex
      • 17
        It's the way I think
      • 17
        Imperative
      • 15
        Very programmer and non-programmer friendly
      • 14
        Powerful
      • 14
        Free
      • 13
        Fast and simple
      • 13
        Powerfull language
      • 12
        Scripting
      • 9
        Machine learning support
      • 9
        Explicit is better than implicit
      • 8
        Unlimited power
      • 8
        Ease of development
      • 7
        Import antigravity
      • 7
        Clear and easy and powerfull
      • 6
        It's lean and fun to code
      • 6
        Print "life is short, use python"
      • 5
        Flat is better than nested
      • 5
        Fast coding and good for competitions
      • 5
        There should be one-- and preferably only one --obvious
      • 5
        Python has great libraries for data processing
      • 5
        High Documented language
      • 5
        I love snakes
      • 5
        Although practicality beats purity
      • 5
        Great for tooling
      • 4
        Readability counts
      • 3
        CG industry needs
      • 3
        Beautiful is better than ugly
      • 3
        Multiple Inheritence
      • 3
        Complex is better than complicated
      • 3
        Great for analytics
      • 3
        Socially engaged community
      • 3
        Rapid Prototyping
      • 3
        Lists, tuples, dictionaries
      • 3
        Plotting
      • 2
        Generators
      • 2
        Simple and easy to learn
      • 2
        Import this
      • 2
        No cruft
      • 2
        Easy to learn and use
      • 2
        List comprehensions
      • 2
        Special cases aren't special enough to break the rules
      • 2
        Now is better than never
      • 2
        If the implementation is hard to explain, it's a bad id
      • 2
        If the implementation is easy to explain, it may be a g
      • 1
        Many types of collections
      • 1
        Better outcome
      • 1
        Batteries included
      • 1
        Ys
      • 1
        Good
      • 1
        Pip install everything
      • 1
        Easy to setup and run smooth
      • 1
        Because of Netflix
      • 1
        Flexible and easy
      • 1
        Web scraping
      • 1
        Should START with this but not STICK with This
      • 1
        Powerful language for AI
      • 1
        It is Very easy , simple and will you be love programmi
      • 1
        Only one way to do it
      • 1
        A-to-Z
      • 0
        Pro
      • 0
        Powerful
      CONS OF PYTHON
      • 50
        Still divided between python 2 and python 3
      • 27
        Performance impact
      • 26
        Poor syntax for anonymous functions
      • 19
        Package management is a mess
      • 19
        GIL
      • 13
        Too imperative-oriented
      • 12
        Hard to understand
      • 11
        Dynamic typing
      • 9
        Very slow
      • 8
        Not everything is expression
      • 7
        Explicit self parameter in methods
      • 7
        Indentations matter a lot
      • 6
        Poor DSL capabilities
      • 6
        No anonymous functions
      • 6
        Requires C functions for dynamic modules
      • 5
        Threading
      • 5
        The "lisp style" whitespaces
      • 5
        Hard to obfuscate
      • 4
        Fake object-oriented programming
      • 4
        Incredibly slow
      • 4
        Lack of Syntax Sugar leads to "the pyramid of doom"
      • 4
        The benevolent-dictator-for-life quit
      • 3
        Official documentation is unclear.
      • 3
        Circular import
      • 3
        Not suitable for autocomplete
      • 1
        Training wheels (forced indentation)
      • 1
        Meta classes

      related Python posts

      Conor Myhrvold
      Tech Brand Mgr, Office of CTO at Uber · | 38 upvotes · 3.7M views

      How Uber developed the open source, end-to-end distributed tracing Jaeger , now a CNCF project:

      Distributed tracing is quickly becoming a must-have component in the tools that organizations use to monitor their complex, microservice-based architectures. At Uber, our open source distributed tracing system Jaeger saw large-scale internal adoption throughout 2016, integrated into hundreds of microservices and now recording thousands of traces every second.

      Here is the story of how we got here, from investigating off-the-shelf solutions like Zipkin, to why we switched from pull to push architecture, and how distributed tracing will continue to evolve:

      https://eng.uber.com/distributed-tracing/

      (GitHub Pages : https://www.jaegertracing.io/, GitHub: https://github.com/jaegertracing/jaeger)

      Bindings/Operator: Python Java Node.js Go C++ Kubernetes JavaScript OpenShift C# Apache Spark

      See more
      Nick Parsons
      Director of Developer Marketing at Stream · | 35 upvotes · 1.3M views

      Winds 2.0 is an open source Podcast/RSS reader developed by Stream with a core goal to enable a wide range of developers to contribute.

      We chose JavaScript because nearly every developer knows or can, at the very least, read JavaScript. With ES6 and Node.js v10.x.x, it’s become a very capable language. Async/Await is powerful and easy to use (Async/Await vs Promises). Babel allows us to experiment with next-generation JavaScript (features that are not in the official JavaScript spec yet). Yarn allows us to consistently install packages quickly (and is filled with tons of new tricks)

      We’re using JavaScript for everything – both front and backend. Most of our team is experienced with Go and Python, so Node was not an obvious choice for this app.

      Sure... there will be haters who refuse to acknowledge that there is anything remotely positive about JavaScript (there are even rants on Hacker News about Node.js); however, without writing completely in JavaScript, we would not have seen the results we did.

      #FrameworksFullStack #Languages

      See more
      TestCafe logo

      TestCafe

      111
      177
      17
      A Node.js tool to automate end-to-end web testing
      111
      177
      + 1
      17
      PROS OF TESTCAFE
      • 3
        Open source
      • 3
        Cross-browser testing
      • 3
        Built in waits
      • 3
        Easy setup/installation
      • 2
        UI End to End testing
      • 2
        Supports Devices without extra software/package
      • 1
        Both client and server side debug
      CONS OF TESTCAFE
      • 4
        No longer free

      related TestCafe posts