All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.fluentlenium.core.FluentDriverWait Maven / Gradle / Ivy

package org.fluentlenium.core;

import static java.util.Objects.requireNonNull;

import org.fluentlenium.configuration.Configuration;
import org.fluentlenium.core.wait.FluentWait;

/**
 * Creates and configures a {@link FluentWait} from a {@link Configuration} to be used via {@link FluentDriver}.
 */
public class FluentDriverWait {

    private final Configuration configuration;

    public FluentDriverWait(Configuration configuration) {
        this.configuration = requireNonNull(configuration);
    }

    /**
     * Creates a {@link FluentWait} instance with the argument {@link FluentControl},
     * and configures the FluentWait with the {@code awaitAtMost} and {@code pollingEvery} values from
     * a {@link Configuration} if they are set in that configuration.
     *
     * @param control the fluent control
     * @return the configured FluentWait
     */
    public FluentWait await(FluentControl control) {
        FluentWait fluentWait = new FluentWait(control);
        configureWithAwaitAtMost(fluentWait);
        configureWithPollingEvery(fluentWait);
        return fluentWait;
    }

    private void configureWithAwaitAtMost(FluentWait fluentWait) {
        Long atMost = configuration.getAwaitAtMost();
        if (atMost != null) {
            fluentWait.atMost(atMost);
        }
    }

    private void configureWithPollingEvery(FluentWait fluentWait) {
        Long pollingEvery = configuration.getAwaitPollingEvery();
        if (pollingEvery != null) {
            fluentWait.pollingEvery(pollingEvery);
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy