Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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 12 hours 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.

Awesome Lists containing this project

README

        

# What is FluentLenium ?

![FluentLenium CI pipeline](https://github.com/FluentLenium/FluentLenium/workflows/FluentLenium%20CI%20pipeline/badge.svg)
[![Coveralls](https://coveralls.io/repos/github/FluentLenium/FluentLenium/badge.svg?branch=develop)](https://coveralls.io/github/FluentLenium/FluentLenium?branch=develop)
[![javadoc](https://javadoc.io/badge2/io.fluentlenium/fluentlenium-core/javadoc.svg)](https://fluentlenium.io/javadoc)
[![Maven Central](https://img.shields.io/maven-central/v/io.fluentlenium/fluentlenium-parent.svg)](http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22io.fluentlenium%22%20AND%20a%3A%22fluentlenium-parent%22)
[![Website](https://img.shields.io/website-up-down-green-red/http/fluentlenium.io.svg)](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)