Ta-dah !

We are proud to announce that FluentLenium 3.0.0 and 1.0.0 have been released !

Two versions ?

Selenium 2.53.1 is the last Selenium 2 version and won’t get any other maintenance releases, so users should switch to Selenium 3 as soon as possible to support latest driver versions and get bug fixes.

Selenium 3 requires Java 8 to run and is currently in beta but should be released soon.

As a consequence, FluentLenium now comes in two versions:

  • 3.0.0 is compiled with Java 8 and Selenium 3.0.0-beta4. (recommended version)
  • 1.0.0 is compiled with Java 7 and Selenium 2.53.1.

Those two versions are currently functionally equivalent, but 1.x will be maintained for bug fixes only. So you should choose this version only if you can’t run Java 8 or Selenium 3 in your environment.

New website

We’ve also built a new website that embeds the docs from latest release. Sources are available on github, so feel free to open a pull request if you find anything wrong in it.

What’s new ?

  • Lazy Locators

    Calling search methods like find and $ now returns Lazy Locators. Those locators works like previous elements, but effective WebDriver search are now performed as lazily, as late as possible, before invoking an effective action on elements. It allowed us to implement new features, like present() method that should avoid catching NoSuchElementException in your tests to verify presence of elements, and reset(true) to reload an element.

  • Hook Annotations

    Elements behavior can now be customized globally with Hook Annotations. For example, you can add @Wait annotation on the test class, and remove all manual waits spoiling your test and page object code ! FluentLenium will wait before any action for it to be available. Hook can also be defined on a particular element. @Wait annotation is provided, but you can also implement your how hook that hides the technical issues of your particular context.

  • Events

    You can now listen to WebDriver events using either a Listener API, or annotations in your Test, Page Object and Component classes.

  • Configuration

    You can now configure settings like WebDriver, Capabilities and Base Url through various media like java annotation, java system property, environment variable or file. Stop editing your java source code to change those settings.

  • Conditions and Wait API

    Conditions and wait API have been rewriten to be more consistent, easy to extend and easy to maintain. A really good point for future !

  • Components, Page Objects and Injection

    Some inconsistencies have been fixed in the way Components and Page Objects are injected in the Test.

  • Docs

    Docs are now complete and nicely displayed on this website.

  • Better quality

    Many bugs have been fixed and code coverage is now decent.

And what’s next ?

Beyond all those new features, we still have ideas lying in the backlog, like Spring support, logging, visual debug

All community ideas are written in Github issues, so stay tuned and feel free to contribute.