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
- Flexible6
- 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 source29
- Great documentation22
- Simple usage20
- Fast18
- Cross Browser testing10
- Easy us with CI9
- Npm install cypress only5
- Não faz café1
- Good for beginner automation engineers1
- 10
- Cypress is weak at cross-browser testing21
- Switch tabs : Cypress can'nt support14
- No iFrame support12
- No page object support9
- No multiple domain 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
- $20/user/thread for reports5
- Adobe4
- Using a non-standard automation protocol4
- Not freeware4
- 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!
- Very well documented10
- Scriptable web browser10
- 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 usage8
- Huge community5
- 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.2K
- Readable code952
- Beautiful code837
- Rapid development781
- Large community685
- Open source428
- Elegant387
- Great community279
- Object oriented270
- Dynamic typing215
- Great standard library76
- Very fast57
- Functional programming52
- Easy to learn45
- Scientific computing44
- Great documentation34
- Matlab alternative27
- Easy to read26
- Productivity26
- Simple is better than complex22
- It's the way I think19
- Imperative18
- Free17
- Very programmer and non-programmer friendly16
- Machine learning support15
- Powerfull language15
- Powerful14
- Fast and simple14
- Scripting13
- Explicit is better than implicit10
- Ease of development9
- Unlimited power9
- Clear and easy and powerfull9
- Import antigravity8
- It's lean and fun to code7
- Print "life is short, use python"7
- Flat is better than nested6
- There should be one-- and preferably only one --obvious6
- High Documented language6
- I love snakes6
- Although practicality beats purity6
- Python has great libraries for data processing6
- Great for tooling6
- Fast coding and good for competitions6
- Readability counts5
- Rapid Prototyping5
- Now is better than never5
- Complex is better than complicated4
- Web scraping4
- CG industry needs4
- Great for analytics4
- Socially engaged community4
- Lists, tuples, dictionaries4
- Multiple Inheritence4
- Beautiful is better than ugly4
- Plotting4
- Simple and easy to learn3
- Generators3
- Easy to learn and use3
- Many types of collections3
- No cruft3
- List comprehensions3
- Pip install everything3
- Special cases aren't special enough to break the rules3
- If the implementation is hard to explain, it's a bad id3
- If the implementation is easy to explain, it may be a g3
- Easy to setup and run smooth3
- Import this3
- Shitty2
- Flexible and easy2
- It is Very easy , simple and will you be love programmi2
- Batteries included2
- Can understand easily who are new to programming2
- Powerful language for AI2
- Should START with this but not STICK with This2
- A-to-Z2
- Because of Netflix2
- Only one way to do it2
- Better outcome2
- Good for hacking2
- Powerful0
- Still divided between python 2 and python 351
- Performance impact28
- Poor syntax for anonymous functions26
- GIL21
- Package management is a mess19
- Too imperative-oriented14
- Hard to understand12
- Dynamic typing12
- Very slow11
- Not everything is expression8
- Indentations matter a lot7
- Explicit self parameter in methods7
- Incredibly slow7
- Requires C functions for dynamic modules6
- Poor DSL capabilities6
- No anonymous functions6
- Official documentation is unclear.5
- The "lisp style" whitespaces5
- Fake object-oriented programming5
- Hard to obfuscate5
- Threading5
- Circular import4
- The benevolent-dictator-for-life quit4
- 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 testing7
- Open source4
- Easy setup/installation4
- Built in waits4
- UI End to End testing3
- Supports Devices without extra software/package2
- Both client and server side debug1
- No longer free9