As I described in my previous post, at first sight Cypress’s code looks synchronous, as you don’t need to use the await keyword or promises, at least for the basic stuff. Here’s a simple test code in Cypress:

However, when you want to use a result of one command as an input to another command, things start to get more complex. In addition, if you’re trying to use some conditional logic, loops, etc., things may not behave as you expect. I agree with Cypress’s documentation that conditional logic in tests is pretty much discouraged, but there are cases, mostly…

There are many comparisons between Cypress and Selenium out there, but each has a slightly different angle on things, and so I’m here to give you my own experience and insights.

Some background

As a consultant for test automation, I’ve done many projects using Selenium, mainly in C# and Java, and also some in Python. I also wrote and taught about writing unit tests in JavaScript, but only did a single POC (Proof of Concept) using JavaScript and Selenium. I also did a verity of projects in other languages and tools besides Selenium.

In most of the test automation projects I do…

Table of Contents


Recently, I get a lot of questions regarding running tests in parallel and cross-platform. In many cases, the person asking the question mentions that he wants to use Selenium Grid and Docker to achieve this. When I ask some clarification questions, I often find that the person doesn’t really know what these tools are for, and what simpler alternatives can help them achieve the same goals.

In this (pretty long) article, I’ll try to put some order in…

In the Algorithms course I took at college (back in the late ‘90s…) we’ve learned to prove the correctness of certain algorithms. It seems though that in the industry, as opposed to academia, proving the correctness of an algorithm or an application is very rarely heard of. Instead, in the industry we’re using testing to ensure that the application works correctly. However, testing, by its nature, is based on specific examples and therefore can never prove that the application works correctly in all cases, rather it can only prove that it doesn’t if a test fails.

So Why No One Do That?

The most common answer…


EDIT: the old website seems to be down. However, I copied all of its content beforehand and uploaded it to here, and edited the links below accordingly. Unfortunately, it turned out that some older posts were not copied, so their links may be broken or unavailable.

Also, I updated the links manually, so if you find a wrong link, please let me know.

From now on I intend to write and publish new blog posts here, instead of in my old blog. …

A question that comes often, especially by folks that are new to Selenium, is what are the best practices to use when choosing a locator for an element. In other cases, people just have bad habits and don’t even think to ask this question, but they encounter instabilities or maintenance problems, without knowing that they don’t use the locators effectively.

For the sake of clarity, a locator is the combination of the type and the value of the By clause which Selenium WebDriver uses in the FindElement and FindElements methods. As you probably know (given you’re familiar with Selenium), Selenium…

Arnon Axelrod

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store