Trying out cypress.io for UI testing because Selenium, ugh

Reading Time: 2 minutes

I am not a huge fan of fiddling around with Selenium implicit and explicit waits, and all the trickery that can go into setting up Selenium to make it “just work” and “stable enough” to get tests running on the pipeline.

 

If you have not struggled with that, my best is guess is one or a combination of the following:

  1. You are a genius and all the people working on the web app and tests worked with excellent best practices all of the time, and your world was basically perfect
  2. You worked alone on a small to mid size project and had absolute full control so could quickly figure out a false positive or false negative on your pipeline
  3. Your site had fairly new code that worked well in most modern browsers, and was not laden with layers of frames or custom code hiding legacy front end challenges

 

For the rest of us, may I recommend trying out cypress.io

 

It has also delivered on making the syntax for finding any UI element I needed to find very simple and intuitive.

 

In addition, the debugging is a breeze.  There is nothing to set up, and it “just works”.

 

And finally, the documentation is well thought out and organised, which made it easy for me to get cypress.io up and running.

 

Obviously I am still in my honeymoon phase with my beloved cypress.io.  The main reason is that so far it is has delivered on my major pain point with Selenium, which is that once you get those UI tests on a pipeline, the wait time trickery gets exponentially harder.  I have not yet used cypress.io extensively.  Instead I have tried to see if it delivers on some scenarios that are typically a small pain in Selenium.

 

I hope that my initial trial is a good sign of things to come.  Meanwhile, I am sending cypress.io a virtual hug.

 

HHHH     HHHH    UUUU    UUUU    GGGGGGGGGGGG
HHHH     HHHH    UUUU    UUUU    GGGG    GGGG
HHHHHHHHHHHHH    UUUU    UUUU    GGGG
HHHHHHHHHHHHH    UUUU    UUUU    GGGG  GGGGGG
HHHH     HHHH    UUUU    UUUU    GGGG    GGGG
HHHH     HHHH      UUUUUUUU      GGGGGGGGGGGG