Selenium locators best practices: helpful tips for UI testers

Following Selenium locators best practices isn’t merely a good thing to do. Given how little it takes for UI testing to crumble into maintenance hell, having a good locator strategy is a must. And just like most things in UI testing, simple, robust Selenium locators aren’t that simple to build. So if you intend to automate UI testing with Selenium, scan through the best practices outlined in this post. While some of the tips we’ll mention are well-known, chances are you’ll discover a couple of new tricks. In fact, let’s start from simple, beginner friendly practices and proceed to more complicated ones. 1. If you can get your developers to add unique IDs, just do it Let’s begin with a quick reminder from Captain Obvious: IDs are (and will probably always be) the most resilient attributes for Selenium locators. A best practice that deserves mentioning in this context is less technical, yet it will save you tons of time. When building locators, it’s easy to forget about the option of asking your developers to add unique IDs to the UI code. So if reaching out to a developer is an option — and if adding unique IDs really makes sense... More

Selenium Locators Tutorial: Types, Best Practices, and many more

The skill of building robust Selenium locators is both science and art. This skill stems from a special kind of intuition that you can only attain while working on real-life projects. Most QAs agree it takes months, sometimes years, to develop this intuition. So what is it that makes Selenium locators a pain point? Building locators that last is easy if you’re dealing with elements that have unique IDs. Things are still fairly straightforward if you can add missing IDs every time you need them. But is this a realistic expectation in real-life projects? Sadly, no. In real life, we always stumble across hard-to-reach stuff. Dynamically generated IDs, duplicate IDs, missing IDs, renamed IDs, pieces of legacy code, you name it. More often than not, you don’t get the luxury of asking a developer to assign an ID to each element you target. In situations of this sort, the efficiency of test automation will depend on your knowledge of Selenium locators and best practices related to them. Let’s have a quick look at the tactics of targeting UI elements in Selenium tests. In this post, we’ll look at the types of Selenium locators, as well as the advantages they offer... More

20+ web automation tools to consider for your next projects

We’ve created Screenster as a product that embodies a specific vision of a web automation tool. We believe that testing automation should be about ROI, not the programming skills of your QA team. This vision defines our approach to the automated testing of web UIs, yet we realize that this approach is just one of many. Actually, there’s a plethora of approaches to — and tools for — web automation. Recorders, drag-and-drop test constructors, numerous frameworks and libraries supporting every major programming language — there’s a lot to choose from. The ecosystem of web automation tools has grown so vast and diverse it’s easy to get lost in the variety of solutions. In case you’re looking for a quick introduction to your major options, this post is for you. This article will explore web automation solutions ranging from mainstream tools (ahem, Selenium) to niche products. If this is what you’re looking for, read on. Selenium, the golden standard of web automation You have to hand it to Selenium for being the de-facto standard in web automation. Selenium is a must-know technology for testers, and Selenium WebDriver is the foundation for dozens of high-level frameworks and platforms. Besides, testers often evaluate... More

Responsive design testing: tools, challenges, solutions

What’s so challenging about responsive design testing? Or should I say, what’s not challenging about it? We all know that responsive web design testing can get tedious. A dozen of screen sizes, multiplied by the number of supported Webkits and Geckos. Oh, and how about IEs? Okay, I know I’m basically rubbing it in at this point… Still, it’s not just the number of browsers and devices. When testing responsive designs, you get a bunch of tools and tactics to choose from. Yet none of these tools and tactics cover the whole spectrum of requirements posed by responsive design testing of a real-life web app. So what can we do about it? To find the answer, let’s briefly analyze the options we get when testing responsive web designs. Device/screen emulators for responsive design testing Screen size emulators like Responsinator or Viewport Resizer make for a fast and cheap way of responsive design testing. These tools are, essentially, a step up over Chrome’s device toolbar because they target a wider range of screen sizes. One disadvantage of this sort of tools is that they rarely offer anything except for the very basic functionality. All they can do, in a nutshell, is... More

Image and screenshot comparison tools for UI testing

There is a simple case for why end-to-end UI testing is impossible without automated image comparison. If you’re not using a screenshot comparison tool, your product is at risk of shipping with visual bugs which rarely go unnoticed by users. Obviously, no sane QA engineer is willing to accept this risk. So do you automate image comparison when testing UIs? And if yes, what automation tool do you use? Is it simple module for WebDriver — or other code-based solution — or a dedicated visual CSS regression testing tool? Let’s look at the popular tools and platforms that QAs use to compare screenshots when testing web UIs. In this post, we’ll find out if these tools’ functionality meets the real-life requirements of UI testing. WebdriverCSS WebdriverCSS is a part of the WebdriverIO, which makes for a lot of neat functionality. It allows you to write scripts in JavaScript, and it’s compatible with major TDD and BDD frameworks. One more reason to like this tool is the WebdriverCSS Adminpanel — a clean, nothing-extra-style dashboard with a slider for manual image comparison. Sure, setting up the admin panel adds overhead, but the overall experience of using the dashboard seems rewarding. PhantomCSS While... More

Using Jenkins CI for UI testing. Will Selenium do?

If you’ve ever used Jenkins CI for UI testing automation, you probably know it’s a terrific scheduler. Sure, Jenkins isn’t the only tool of its kind, but continuous integration with Jenkins has several advantages over other CI platforms. Namely: Jenkins is open-source, award-winning, and supported by an independent board of programming veterans from Yahoo!, Microsoft and RedHat. Being a mainstream CI tool, Jenkins has great documentation and a vibrant, booming community. Even though Jenkins CI is not as easy to configure as TeamCity, it's still pleasantly manageable. Jenkins has hundreds of plugins available. Moreover, developers often give Jenkins higher priority over its Oracle-controlled counterpart Hudson when rolling out updates and new plugins. Okay, Jenkins is uber-awesome… unless you use it to schedule Selenium UI tests Jenkins does everything you’d expect from a robust CI solution. It’s great when used with most types of automated testing tools, too — as long as we’re talking unit and API tests. Things tend to get trickier, however, once you try using Jenkins with an old-school UI testing automation tool like Selenium. Okay, that last statement might irk some Selenium fans, so let me explain myself while they’re getting their pitchforks and torches ready:). Or... More

Screenster vs Sauce Labs: regression testing tools compared

In the brave new world of 2017, UI regression testing tools shouldn’t take days to set up. Elimination of setup and configurations pains makes one solid case for taking your QA infrastructure to the cloud. Another obvious case for running tests on the cloud is streamlined collaboration — after all, software testing is a team effort. A matter of question, however, is what type of a cloud-based platform is best-suited for your project. In this post, we will consider two regression testing tools that demonstrate radically different approaches to UI testing automation. The first one is Sauce Labs, arguably the most popular automated testing cloud for running Selenium or Appium tests. The other one is Screenster, our very own cloud-based platform that enables codeless UI testing. Sauce Labs Sauce Labs builds on the flexibility of Selenium and Appium tests, and it provides a readymade cloud infrastructure for running them. The solution offered by Sauce Labs mainly functions as a code-based regression testing tool. The platform enables QAs to run Selenium and Appium tests on remote virtual machines that mimic the environment of different OS and browser versions. All in all, there are 700+ OS and browser combinations available for the... More

Regression testing techniques and best practices

If you’ve been following this blog, you know that we are pretty serious about regression testing best practices. Visual regressions were the arch-enemies of our product AjaxSwing. To overcome them, we’ve even created our own automated regression testing tool. Today, we’d like to talk about regression testing. We'll cover its key concepts and challenges. Besides, we'll explore regression testing best practices, techniques and tools. Let’s start with addressing some of the basics. What is regression testing? Regression testing tells you if a previously written and tested code broke after you’ve added an update or a fix. In other words, it helps you notice if you’ve unknowingly introduced bugs to your software while adding new code. New bugs of this kind are called regressions. How to do regression testing? Okay, so how exactly do you test for regressions? In a nutshell, you perform regression testing by re-executing the same tests after each update. Passing tests ensure that your code continues to function as expected. Once a test that passed during previous runs fires a failure, you know that you’re dealing with a regression. As a rule, it’s a good practice in regression testing to run tests before the release of every... More

Most important facts about regression testing tools in 2017

Why visual regression testing is so important The World Wide Web is swarming with sites and web apps of all sorts. Each year, the competition keeps growing hotter in every segment. For instance, this year there were almost 2.5 million of applications in Google Play alone. Nearly each day, a fresh new project gets released somewhere. Pick a specific niche, do a quick research, and you will find several rivaling companies competing in it. UI or CSS testing of a web project is, therefore, a crucial part regardless of what your app is designed to do. Functionality and performance have long been the key factors that keep that influence user retention. In the brave new world of today, UI and UX are just as important. Let’s face it, adding a new killer feature to your product will do little good if your lead-generating landing page is broken. The best cure against this trouble is visual regression testing performed constantly, as often as you can afford. In 2017, regression testing automation isn’t an extra activity any more Things are getting automated in our daily life, step by step. First of all we pass to robots or programs most burdensome and least... More

5 reasons to choose Screenster over your current UI testing automation tool

Looking for an efficient codeless solution for UI testing automation? Meet Screenster, a new cloud-based platform that brings speed and simplicity to UI testing. Here are five reasons why we’re different from (and better than 😉) our competition. 1. Super-short learning curve with no coding skills required Okay, we all know that every other UI testing automation tool boasts having a smooth learning curve. Here’s why Screenster is different: when we say our platform is easy to pick up, we mean it. Screenster requires, precisely, zero programming skills. Instead of relying on scripted tests, the functionality of this platform revolves around record-playback and screenshot comparison. This allows manual QAs and product owners to cover the whole UI and test actual UX scenarios instead of hand-coding verifications. Now isn’t this what UI testing automation is all about? When working on Screenster, we’ve put a lot of effort into making it accessible to non-testers. You don’t need to read manuals to automate basic UI tests, and most of the things are easy enough to learn while actually working with the platform. 2. Maintainable tests created in 3 minutes … And I’m not talking about all those “hello, world!” mock tests. Take a... More
WordPress Image Lightbox Plugin