https://github.com/FluentLenium/FluentLenium
FluentLenium is a web & mobile automation framework which extends Selenium to write reliable and resilient UI functional tests. This framework is React ready. Written and maintained by people who are automating browser-based tests on a daily basis.
https://github.com/FluentLenium/FluentLenium
assertj await fluentlenium html java javascript junit selenium spock spring testng
Last synced: about 2 months ago
JSON representation
FluentLenium is a web & mobile automation framework which extends Selenium to write reliable and resilient UI functional tests. This framework is React ready. Written and maintained by people who are automating browser-based tests on a daily basis.
- Host: GitHub
- URL: https://github.com/FluentLenium/FluentLenium
- Owner: FluentLenium
- License: other
- Created: 2011-07-22T13:26:37.000Z (over 13 years ago)
- Default Branch: develop
- Last Pushed: 2025-02-20T02:16:27.000Z (about 2 months ago)
- Last Synced: 2025-02-26T02:14:32.690Z (about 2 months ago)
- Topics: assertj, await, fluentlenium, html, java, javascript, junit, selenium, spock, spring, testng
- Language: Java
- Homepage: https://fluentlenium.io
- Size: 18.6 MB
- Stars: 881
- Watchers: 51
- Forks: 214
- Open Issues: 29
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-java - FluentLenium
README
# What is FluentLenium ?

[](https://coveralls.io/github/FluentLenium/FluentLenium?branch=develop)
[](https://fluentlenium.io/javadoc)
[](http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22io.fluentlenium%22%20AND%20a%3A%22fluentlenium-parent%22)
[](https://fluentlenium.io)FluentLenium helps you writing readable, reusable, reliable and resilient UI functional tests for the browser and mobile
app.FluentLenium provides a Java [fluent interface](http://en.wikipedia.org/wiki/Fluent_interface) to
[Selenium](http://www.seleniumhq.org/), and brings some [extra features](https://fluentlenium.io/docs/key_features/)
to avoid common issues faced by Selenium users.FluentLenium is shipped with adapters for [JUnit4](https://junit.org/junit4/), [JUnit5](https://junit.org/junit5/)
, [TestNG](http://testng.org/doc/index.html), [Spock](http://spockframework.org/)
, [Kotest](https://kotest.io/)
, [Spring TestNG](https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/test/context/testng/AbstractTestNGSpringContextTests.html)
and [Cucumber](https://cucumber.io), but it can also be
used [standalone](https://fluentlenium.io/docs/test-runners/#standalone-mode).FluentLenium best integrates with [AssertJ](http://joel-costigliola.github.io/assertj/), but you can also choose to use
the [assertion framework](https://fluentlenium.io/docs/assertion-libraries/) you want.FluentLenium can be used to make your [mobile Appium tests](https://fluentlenium.io/docs/appium-support/) fluent and
easier to maintain.FluentLenium gives you [multiple methods](https://fluentlenium.io/docs/test-methods/) which help you write tests
quicker. All those methods are tested daily by commercial regression test suites maintained by project developers.# Quickstart
Quickstart steps are described in deail in our [separate documentation section](https://fluentlenium.io/quickstart/).
## Example
```java
public class DuckDuckGoTest extends FluentTest {
@Test
public void titleOfDuckDuckGoShouldContainSearchQueryName() {
goTo("https://duckduckgo.com");
$("#search_form_input_homepage").fill().with("FluentLenium");
$("#search_button_homepage").submit();
assertThat(window().title()).contains("FluentLenium");
}
}
```More detailed FluentLenium examples are available
in [examples section](https://github.com/FluentLenium/FluentLenium/tree/develop/examples). Examples include `headless`
Chrome and Firefox, [Spring](https://spring.io/)-based framework supporting multiple browsers
and [much more](https://fluentlenium.io/quickstart/#more-examples).## Documentation
Detailed documentation is available on [fluentlenium.io](https://fluentlenium.io).
## Javadoc
Javadoc is available on [fluentlenium.io/javadoc](https://fluentlenium.io/javadoc).
# Modules summary
To help you navigate through FluentLenium, here's a short summary about its modules and what support they provide.
- **fluentlenium-core**: Contains core functionality of FluentLenium, including webdriver configuration, page object
support and injection logic.
- **fluentlenium-junit**: Provides support for integration with [JUnit 4](https://junit.org/junit4/).
- **fluentlenium-junit-jupiter**: Provides support for integration with [JUnit 5](https://junit.org/junit5/).
- **fluentlenium-testng**: Provides support for integration with [TestNG](https://testng.org/doc/index.html).
- **fluentlenium-spock**: Provides support for integration with [Spock](http://spockframework.org).
- **fluentlenium-spring-testng**: Provides support for integration
with [Spring Test NG](https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/test/context/testng/AbstractTestNGSpringContextTests.html)
- **fluentlenium-kotest**: Provides support for integration with [Kotest](https://kotest.io)
- **fluentlenium-kotest-assertions**: Provides custom [Kotest matchers](https://kotest.io/docs/assertions/matchers.html)
- **fluentlenium-cucumber**: Provides support for integration with [Cucumber](https://cucumber.io). This may be combined
with any of the modules above that are also supported by Cucumber.
- **fluentlenium-assertj**: Provides [AssertJ](http://joel-costigliola.github.io/assertj/) assertions for FluentLenium
specific objects like `FluentWebElement`, `FluentList` and `FluentPage`.
- **fluentlenium-integration-tests**: Integration tests for validating the correctness of FluentLenium features
internally.
- **fluentlenium-coverage-report**: Creates jacoco test coverage report.
- **fluentlenium-ide-support**: Though not an actual Maven module, it contains resources to make working with
FluentLenium in the IDE easier.# Contact Us
If you have any comment, remark or issue, please open an issue on
[FluentLenium Issue Tracker](https://github.com/FluentLenium/FluentLenium/issues)