What is Selenium and what are its top alternatives?
Top Alternatives to Selenium
- 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 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
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 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 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 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 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
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
- Easy setup9
- Quick tests implementation8
- Flexible5
- Open source5
- Promise support5
- Limited4
related Protractor posts
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!
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?
Cypress
- Open source27
- Great documentation21
- Simple usage19
- Fast18
- Cross Browser testing10
- Easy us with CI9
- Npm install cypress only5
- Good for beginner automation engineers1
- Cypress is weak at cross-browser testing20
- Switch tabs : Cypress can'nt support13
- No iFrame support12
- No multiple domain support9
- No page object support9
- No file upload support8
- No support for multiple tab control8
- No xPath support8
- No support for Safari7
- Cypress doesn't support native app7
- Re-run failed tests retries not supported yet7
- No support for multiple browser control7
- Adobe4
- Using a non-standard automation protocol4
- Not freeware4
- $20/user/thread for reports4
- No 'WD wire protocol' support3
related Cypress posts
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.
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.
Nightwatchjs
- Open source3
- Testing2
- Automates browsers2
- Better cross browser (use selenium)1
- Cross-Browser Testing1
- Multiple Browser Support1
- Parallel Test Running1
- No automatic wait2
related Nightwatchjs posts
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.











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!
- Scriptable web browser10
- Very well documented9
- Promise based6
- Chrome only10
related Puppeteer posts
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!
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! :)
- Simple Syntax20
- Simple usage6
- Huge community4
- Nice report3
related Cucumber posts
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.
@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
- Scriptable web browser13
- Depends on QT3
- No ECMAScript 62
related PhantomJS posts
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.
Python
- Great libraries1.1K
- Readable code937
- Beautiful code830
- Rapid development774
- Large community677
- Open source422
- Elegant381
- Great community273
- Object oriented266
- Dynamic typing211
- Great standard library73
- Very fast54
- Functional programming51
- Easy to learn39
- Scientific computing39
- Great documentation32
- Productivity25
- Matlab alternative25
- Easy to read24
- Simple is better than complex20
- It's the way I think18
- Imperative17
- Free15
- Very programmer and non-programmer friendly15
- Powerfull language14
- Powerful14
- Fast and simple13
- Scripting12
- Machine learning support12
- Explicit is better than implicit9
- Ease of development8
- Unlimited power8
- Clear and easy and powerfull8
- Import antigravity7
- It's lean and fun to code6
- Print "life is short, use python"6
- Great for tooling5
- There should be one-- and preferably only one --obvious5
- Python has great libraries for data processing5
- High Documented language5
- I love snakes5
- Although practicality beats purity5
- Flat is better than nested5
- Fast coding and good for competitions5
- Readability counts4
- Lists, tuples, dictionaries3
- CG industry needs3
- Now is better than never3
- Multiple Inheritence3
- Great for analytics3
- Complex is better than complicated3
- Plotting3
- Beautiful is better than ugly3
- Rapid Prototyping3
- Socially engaged community3
- List comprehensions2
- Web scraping2
- Many types of collections2
- Ys2
- Easy to setup and run smooth2
- Generators2
- Special cases aren't special enough to break the rules2
- If the implementation is hard to explain, it's a bad id2
- If the implementation is easy to explain, it may be a g2
- Simple and easy to learn2
- Import this2
- No cruft2
- Easy to learn and use2
- Flexible and easy1
- Batteries included1
- Powerful language for AI1
- Should START with this but not STICK with This1
- Good1
- It is Very easy , simple and will you be love programmi1
- Better outcome1
- إسلام هشام1
- Because of Netflix1
- A-to-Z1
- Only one way to do it1
- Pip install everything1
- Powerful0
- Pro0
- Still divided between python 2 and python 351
- Performance impact29
- Poor syntax for anonymous functions26
- GIL21
- Package management is a mess19
- Too imperative-oriented14
- Dynamic typing12
- Hard to understand12
- Very slow10
- Not everything is expression8
- Indentations matter a lot7
- Explicit self parameter in methods7
- No anonymous functions6
- Poor DSL capabilities6
- Incredibly slow6
- Requires C functions for dynamic modules6
- The "lisp style" whitespaces5
- Fake object-oriented programming5
- Hard to obfuscate5
- Threading5
- Circular import4
- The benevolent-dictator-for-life quit4
- Official documentation is unclear.4
- Lack of Syntax Sugar leads to "the pyramid of doom"4
- Not suitable for autocomplete4
- Meta classes2
- Training wheels (forced indentation)1
related Python posts











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
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
- Cross-browser testing5
- Open source3
- Easy setup/installation3
- Built in waits3
- Supports Devices without extra software/package2
- UI End to End testing2
- Both client and server side debug1
- No longer free7