Using HashMaps in automated tests

HashMaps are one of those Java concepts that can be very useful in automation testing, but are not widely used, because they seem to be too complicated. A HashMap is nothing more than a collection of key/value pairs, where you can store test related data to access later in the tests. In this post i… Read More

thewaiter: clicking on an element by using waits with Selenium

One of the most common ways of interacting with a page displayed in a browser, in Selenium tests, is clicking on a WebElement. But many times, due to the timing when the click happens, it will fail, since the WebElement that needs to be clicked is not yet available. This might be because some Javascript… Read More

Better Test Code Principles #5: Mind your try/catches

Using try/catches to handle exceptions has become quite fashionable when writing tests with Java. However, this approach is also a frequent source of having false positives while running tests. Many times when writing the tests people forget to consider both sections of this code block: they forget to write the appropriate code in both sections… Read More

Using Lists to get UI elements with nearly impossible selectors

Where does this approach apply? One of the following: if you have a list of elements with identical selectors. The element you are interested in is an element of that list. But it does not always appear in the same place in the list. Sometimes it might be the third element in the list, other… Read More

@FindBy, Lists and using them to check for similar UI elements

This is going to be a rather complex post, that will show how to easily check for values of similar UI elements. By similar i mean elements that share some kind of properties: whether they have the same CSS selector, or are part of the same group of elements. Some examples will be shown below.… Read More

Better Test Code Principles: #1 Don’t copy/paste the code. Reuse it.

When starting to learn Java, one of the first things you are taught is that a class consists of several things, among which are the ‘methods’.  A method is nothing more than grouping of several code lines. Since tests are code, the same principle applies to writing your Java based tests. Especially if you are… Read More