Blog

On content verification and why it’s important for UI testing (new feature)

Okay, this one might actually be a lesser-known term, so what you’re probably asking yourself right now is: what is content verification? To begin with, no, I’m not talking about Google’s content verification program or SSL Web Page Content Verification Certificates. Things are fairly simpler in our case. Content verification is a new shiny feature that we’ve added this summer and are now polishing. So what is it all about? If you’ve ever worked with Selenium, I’m assuming you’ve heard about it or even tried to wrap your head around it. Chances are it sounded differently, though: Source: Stackoverflow Every Selenium fan out there knows that there are multiple ways to check if a text of some sort is present on a page. Let’s look at the ones mentioned in that Stackoverflow thread: What all of these do, in a nutshell, is let you see if a particular text is present on a page. All of these prove handy when you’re targeting an important text fragment or a few key elements on the page — like some call to action above a Buy button. But why is the rest of the page text not getting verified? For full regression testing... More

End of support for Selenium IDE in Firefox 55+. What can you do about it?

By ceasing to support Selenium IDE, Firefox has drawn the attention of the testing community to a long-standing problem. We’ve all known for years that old-school record-playback tools underdeliver in the way of usefulness. Thanks to Mozilla, this has become more obvious. Image credit: Freepik Don’t get me wrong, Selenium IDE is great in its way, and it certainly deserves credit for doing exactly what it promises. It’s lightweight, it automates UI tests by recording manual testing sessions, and it has been the official Selenium recorder for Firefox since forever. Built in 2006, it has long become the first tool that comes to mind when someone mentions record-playback UI testing. Maybe it’s due to this long history that the news of Firefox dropping Selenium IDE feels so unexpected. So what is the reason for discontinuing the support for Selenium IDE in Firefox? There are two of them, actually. Reason 1. Having ditched the .xpi format used in Selenium IDE, Firefox will move to WebExtensions To keep moving forward, you sometimes have to leave things behind. Cheesy as this may sound, it’s painfully true for mainstream technology. In case with a technology as mainstream as the world’s 3rd most popular browser,... More

Selenium waits: isn’t it time to move on?

How do you make Selenium WebDriver wait for page to load. There’s an important difference between a human tester and an automated UI testing tool. This difference comes down to patience: humans are capable of it, and machines aren’t. When processing a test, an automation tool expects to obtain some result, like a button click. If the button is missing, the test fails, which is what we pretty much expect from it If the button takes too long to load, though, the test will also fail, which is certainly not the result we’re counting on. False positives of this sort are the reason why timeouts exist. With timeouts, we can instruct an automated UI testing tool to “wait” for several seconds before trying to click on the button. This, however, introduces new difficulties. Suites of automated tests are typically synchronized with each other. Let’s say there’s a test called A1, and a test called A2 which depends on A1. If running A1 now takes 2x more time, A2 will fail because its pre-conditions are not met. Therefore, A2 requires adding timeouts as well. Naturally, a change to A2 will affect an A3 down the chain, and so on. Having to... More

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

How to use locators in Selenium: types, tools, best practices

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 the big deal with locators in Selenium? Why do they have to be such 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 widespread tactics for building locators in Selenium. We’ll begin with a brief overview of the locator types.... 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 a 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 the functionality of these image comparison tools 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... 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
WordPress Image Lightbox Plugin