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

net.n2oapp.framework.autotest.N2oSelenide Maven / Gradle / Ivy

package net.n2oapp.framework.autotest;

import com.codeborne.selenide.ElementsCollection;
import com.codeborne.selenide.Selenide;
import com.codeborne.selenide.SelenideElement;
import net.n2oapp.framework.autotest.api.collection.ComponentsCollection;
import net.n2oapp.framework.autotest.api.component.Component;
import net.n2oapp.framework.autotest.api.component.drawer.Drawer;
import net.n2oapp.framework.autotest.api.component.modal.Modal;
import net.n2oapp.framework.autotest.api.component.page.Page;
import net.n2oapp.framework.autotest.impl.N2oComponentLibrary;

import static com.codeborne.selenide.Selenide.$;
import static com.codeborne.selenide.Selenide.$$;

/**
 * Главный класс для старта автотестирования страниц N2O
 */
public class N2oSelenide {
    private static ComponentFactory factory = new ComponentFactory().addLibrary(new N2oComponentLibrary());

    public static  T open(String relativeOrAbsoluteUrl, Class pageClass) {
        Selenide.open(relativeOrAbsoluteUrl);
        return page(pageClass);
    }

    public static  T page(Class pageClass) {
        return factory.produce($("body"), pageClass);
    }

    public static  T modal(Class modalClass) {
        return factory.produce($(".modal .modal-content"), modalClass);
    }

    public static  T modal(Class modalClass, int index) {
        return factory.produce($$(".modal .modal-content").get(index), modalClass);
    }

    public static  T drawer(Class drawerClass) {
        return factory.produce($(".drawer.drawer-open"), drawerClass);
    }

    public static  T component(SelenideElement element, Class componentClass) {
        return factory.produce(element, componentClass);
    }

    public static  T collection(ElementsCollection elements, Class collectionClass) {
        return factory.produce(elements, collectionClass);
    }

    public static void setFactory(ComponentFactory newFactory) {
        factory = newFactory;
    }

    public static Modal modal() {
        return modal(Modal.class);
    }

    public static Modal modal(int index) {
        return modal(Modal.class, index);
    }

    public static Drawer drawer() {
        return drawer(Drawer.class);
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy