When working with modern, dynamic websites, there are a lot of moving, animated things. Here’s a quite simple trick to click on those successfully.
Recently I had the following challenge: Click on a button, which quickly becomes visible and enabled, but might move after an expanding section above it is loaded.
This typically causes a
ElementClickInterceptedException as the click was aiming at the previous position of the element and now hits the expanding section.
Usually, I try to solve this kind of issues with a
WebDriverWait to wait for the expanding section to have a certain vertical height. …
In this article I’ll show how to express conditionals — like
switch — in a Jenkinsfile using the declarative pipeline syntax.
So for example, if we only want a release to happen, if a certain boolean parameter
RELEASE is set, we code it like this:
But in that case, we end up with a stage that looks like it was successfully executed, but in fact it didn’t do anything.
Recently I participated in my first remote open space. Here’s what I learned.
At first I was really sceptical if the idea would translate well to a remote scenario, given my experience with sessions where some people participated remote. In these sessions, remote participants were very passive. They had a hard time speaking, since the non-remote participant were simply louder and had no delay. Also drawings on whiteboards or flipcharts were not recognizable through the webcam. …
One of the most important features of Apache Maven is its ability to retrieve dependencies from repositories. For that we need to define which version of a dependency we need for our product. For some dependencies it’s just fine to pick one exact version –e.g.
1.23– which works flawlessly.
However, for some dependencies we’d like to just pick the latest version from a range. For example I’d like the Selenium version to be just the latest
3.x but want to avoid breaking API changes that will probably happen with
4.0. And Maven does have a feature for that: version ranges.
Getting a browser on you CI/CD environment is one very common problem when doing web UI tests. Testcontainers solves this issue quite well by simply relying on Docker to create a container, which has the container installed.
The documentation about this –and also most examples that can be found– are using JUnit to demonstrate the configuration of the Testcontainers and actually this can be transferred to Spock as described in the docs. However, transferring the Webdriver Testcontainer to my Geb tests.
Since I’m developing microservices, I always wanted to test the all my services on Jenkins. Back in the days I was relying on test doubles like H2 for Databases or Spring Kafka’s embedded Kafka, but these days I prefer to get the reals stuff and fire it up using Docker.
One of the biggest issues with this kind of setup for me was the problem that these dependency containers take need ports for the service to connect and when two services are running their tests at the same time on the same Jenkins, the ports are already taken.
Recently I wrote about a quite sophisticated script, which opens Kibana for a certain service with all the right filters (see Kibana via Command Line) instead of having saved searches or quite a list of out dating URL’s within your README.md.
This is quite a universal concept: you could write a script to take you to your continuous integration job, your issue management filter, your source code management tool, no matter if you use Jenkins, JIRA, Confluence and BitBucket (like us) or a completely different tool stack.
So here is the basic script to simply open a given URL under Linux, as well as OSX or Windows:
And here — as another example — is my new script to open the Jenkins from the repository it is placed in:
If you — like me — have a lot of Maven project on your machine, you might know the problem of huge und useless target directories spread across several project directories.
This script simply executes
mvn clean for each pom.xml file it
finds in any subdirectory.
Do you put technical debt to your task board? Do you review it or limit it? Has it become a spot on your board you just don’t look at anymore? Does the color of the stickies start to fade? Well, we had that problem and tried quite some things to solve this, but some of the stickies just turned that old, nobody remembered why they were put up anyway.
Today we reviewed all of these and tried to sort them into a simple matrix roughly following the The Eisenhower Method.
On the horizontal axis sorted from left for hard or…
We use JSON logs and the default view shows the time and the (JSON)
loglevel is hidden within it and there are no filters at all (e.g. filter
The UI of course allows me to add those and more, but I did the exact same clicks every time I opened Kibana to analyse a certain behavior.
This certainly can all be solved…
I've been a software engineer since 2009, worked in various agile projects & got a taste for quality assurance. Today I'm a quality engineer at REWE digital.