Alternatives to Selenium logo

Alternatives to Selenium

Protractor, Cypress, Nightwatchjs, Puppeteer, and Cucumber are the most popular alternatives and competitors to Selenium.
14.6K
11.5K
+ 1
523

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 26.7K GitHub stars and 7.6K 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 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

1.7K
539
33
End-to-end test framework for Angular and AngularJS applications
1.7K
539
+ 1
33
PROS OF PROTRACTOR
  • 9
    Easy setup
  • 8
    Quick tests implementation
  • 6
    Flexible
  • 5
    Open source
  • 5
    Promise support
CONS OF PROTRACTOR
  • 4
    Limited

related Protractor posts

Raziel Alron
Automation Engineer at Tipalti · | 7 upvotes · 359.8K 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
Sai Chaitanya Mankala
Tech Lead at KIOT Innovations · | 6 upvotes · 224.6K views

Protractor or Cypress for ionic-angular?

We have a huge ionic-angular app with almost 100 pages and 10+ injectables. There are no tests written yet. Before we start, we need some suggestions about the framework. Would you suggest Cypress or Angular's Protractor with Jasmine / Karma for a heavy ionic app with Angular?

See more
Cypress logo

Cypress

2.4K
1.9K
115
When testing is easy, developers build better things faster and with confidence.
2.4K
1.9K
+ 1
115
PROS OF CYPRESS
  • 29
    Open source
  • 22
    Great documentation
  • 20
    Simple usage
  • 18
    Fast
  • 10
    Cross Browser testing
  • 9
    Easy us with CI
  • 5
    Npm install cypress only
  • 1
    Não faz café
  • 1
    Good for beginner automation engineers
  • 0
    1
CONS OF CYPRESS
  • 21
    Cypress is weak at cross-browser testing
  • 14
    Switch tabs : Cypress can'nt support
  • 12
    No iFrame support
  • 9
    No page object support
  • 9
    No multiple domain support
  • 8
    No file upload support
  • 8
    No support for multiple tab control
  • 8
    No xPath support
  • 7
    No support for Safari
  • 7
    Cypress doesn't support native app
  • 7
    Re-run failed tests retries not supported yet
  • 7
    No support for multiple browser control
  • 5
    $20/user/thread for reports
  • 4
    Adobe
  • 4
    Using a non-standard automation protocol
  • 4
    Not freeware
  • 3
    No 'WD wire protocol' support

related Cypress posts

Kamil Kowalski
Lead Architect at Fresha · | 28 upvotes · 2M 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

150
306
11
Automated testing and continous integration framework based on node.js and selenium webdriver
150
306
+ 1
11
PROS OF NIGHTWATCHJS
  • 3
    Open source
  • 2
    Testing
  • 2
    Automates browsers
  • 1
    Better cross browser (use selenium)
  • 1
    Cross-Browser Testing
  • 1
    Multiple Browser Support
  • 1
    Parallel Test Running
CONS OF NIGHTWATCHJS
  • 2
    No automatic wait

related Nightwatchjs posts

Benjamin Poon
QA Manager - Engineering at HBC Digital · | 8 upvotes · 1M 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

442
554
26
Headless Chrome Node API
442
554
+ 1
26
PROS OF PUPPETEER
  • 10
    Very well documented
  • 10
    Scriptable web browser
  • 6
    Promise based
CONS OF PUPPETEER
  • 10
    Chrome only

related Puppeteer posts

Raziel Alron
Automation Engineer at Tipalti · | 7 upvotes · 359.8K 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

1.3K
894
36
Simple, human collaboration.
1.3K
894
+ 1
36
PROS OF CUCUMBER
  • 20
    Simple Syntax
  • 8
    Simple usage
  • 5
    Huge community
  • 3
    Nice report
CONS OF CUCUMBER
    Be the first to leave a con

    related Cucumber posts

    Benjamin Poon
    QA Manager - Engineering at HBC Digital · | 8 upvotes · 1M 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 · 457K 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

    977
    426
    18
    Scriptable Headless WebKit
    977
    426
    + 1
    18
    PROS OF PHANTOMJS
    • 13
      Scriptable web browser
    • 3
      Depends on QT
    • 2
      No ECMAScript 6
    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

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

      related Python posts

      Conor Myhrvold
      Tech Brand Mgr, Office of CTO at Uber · | 42 upvotes · 6.2M 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
      Building cool things on the internet 🛠️ at Stream · | 35 upvotes · 1.9M 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

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

      related TestCafe posts

      What tools will be a good fit for the AngularJS application? I am experienced in Selenium WebDriver with Java. Any suggestion for Selenium or TestCafe?

      See more