Introduction to Selenide Tool

Profile picture for user arilio666

So most of us know selenium, but what about selenide? Well, selenide is an automation framework powered by a selenium webdriver, suitable for beginners. It is amicable in creating its skeleton for writing test scripts.

Why Selenide?

  1. Elegant Yet Simple: Selenide resolves all the typical problems with testing modern web applications like ajax and timeouts straightforwardly and elegantly.
  2. Beginner's Treasure: A selenide is a tool where we dive straight into the coding part; unlike reading page-long tutorials, the learning curve is zero, which makes this an apt tool for beginners.
  3. Stability, Timeouts, Ajax Support Saviour: Usually, there is missign expressibility and stability in our tests and those exhausting timeouts and lack of AJAX support. Selenide cures this by having a dedicated library for UI tests on top of selenium.
  4. Utilize the Power Of IDE: Selenide is very usable from any IDE without the need for documentation. With the help of $("selector"). IDE takes care of the suggestions after the dot.
  5. Timeouts: UI tests face most problems in the field of timeouts. Selenide provides the solution by adding no sleep and waiting anymore. Every method waits for a few seconds if needed.
  6. Screenshots: Selenide allows us to take screenshots after every failed test and after successful tests also if we want.
  7. Working With Collections: Sometimes it's helpful to check the whole list of elements like rows of a table, and selenide makes this easy by letting us do it with a single line of code which is $$ methods. $$ returns a collection of elements that can be checked against some criteria.
  8. Page Objects: With selenide, we have ourselves a concise API, and therefore we do not need to do anything special to use page objects. This means no annotations, no page factories, and no super-classes. It encapsulated the logic of elements and pages to separate classes and methods.
  9. Customization: Selenide is well written in that every piece of its logic can be customizable, and there is no private method. Also, we can override any methods too. For instance, when we don't want to take screenshots, we can override this logic by providing our version of ScreenShot Laboratory.
  10. Other JVM Languages: Selenide is fused with other JVM languages such as scala, groovy, etc.