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

Let’s talk about Selenium competitors for UI regression testing

With so many UI testing tools posing themselves as direct competitors to Selenium, which one do you choose? And why opt for a Selenium competitor in the first place? Don’t get me wrong, Selenium is awesome. Well, sort of... Even today, 13 years since its launch, Selenium remains the number-one choice for testing in the browser. It supports the widest range of programming languages, it works with every major browser, and it runs on every major OS. No other testing automation tool can rival the flexibility and the functional scope of Selenium. Besides, none of the competitors is as popular as Selenium. The above doesn’t mean, however, that Selenium is the best solution for every use case that its functionality covers. Namely, you wouldn’t want Selenium for end-to-end regression testing of complex UIs — or, at least, that’s the conclusion we’ve arrived at when testing own product, AjaxSwing. In fact, our scepticism about Selenium grew to a point where we abandoned the tried-and-true framework and started looking at Selenium competitors in search of an alternative. Eventually, this led us to building our own tool for visual regression testing, but that’s a different story. When working with Selenium, we’ve faced three... More

Selenium IDE alternatives for UI regression testing

Most of the QAs I know consider Selenium the number-one choice for UI test automation. I guess this is why Selenium IDE is the first thing that comes to mind when they start looking for a record-playback tool to automate UI regression testing. After all, if Selenium is so great for writing UI tests, it’s bound to have an equally great IDE, right? Well, not quite… If you have any experience with Selenium IDE, you’ll agree that it’s far from perfect. In fact, many testers will argue that Selenium IDE is doing you more harm than good. Reasons? Pick one! Selenium IDE doesn't always record what you expect, and it still requires programming skills (at the very least, the knowledge of HTML and CSS). In a nutshell, the tests produced by Selenium IDE are poorly implemented WebDriver code which ends up being brittle and hard to maintain. Selenium IDE makes you handle timeouts manually which is a major inconvenience. Selenium IDE is no good for projects involving UI elements that change their IDs, location, and/or content dynamically. This means you can’t regression-test the UI of a web app with Selenium IDE. Selenium IDE only works with Firefox and may not work... More

Selenium alternatives for testing automation

Given there are so many Selenium alternatives, will the much-famed framework continue to rule supreme in UI testing automation? Companies like Google, Kaspersky, and Samsung are already on the lookout for alternatives to Selenium. So what is it that makes them search for a better solution? Love and Hate with Selenium If you spend enough time automating web applications, you will most likely develop a love/hate relationship with Selenium. The truth is that it’s pretty much the only game in town to drive the browser through the API. That’s where the "love" comes from — you can start writing cross-browser code in your favorite programming language in a matter of hours. Sweet! But spend enough time doing that for a real world application, and you will discover the ugly side of this coin that at times make you pull your hair out. In my experience the following 6 pain points are near deal-breakers for automation with Selenium. 1. Selenium tests are unstable. WebDriver libraries version trail the auto-updating browser and there’s always something small that doesn’t quite work. Often when you get the new version of the Selenium libraries that is supposed to fix the issue, you discover that now... More
WordPress Image Lightbox Plugin