// Path: src/main/java/ru/colibri/ui/core/builders/ElementBuilders.java
// @Component
// public class ElementBuilders {
// 
//     public static ElementBuilder element() {
//         return new ElementBuilder();
//     }
// }
// 
// Path: src/main/java/ru/colibri/ui/core/fields/IElement.java
// public interface IElement {
//     String getName();
// 
//     String getContentDesc();
// 
//     String getId();
// 
//     String getText();
// 
//     String getXpath();
// 
//     String getNSPredicate();
// 
//     boolean isSpecific();
// }


import io.appium.java_client.MobileBy;
import org.junit.Assert;
import org.junit.Test;
import org.openqa.selenium.By;
import ru.colibri.ui.core.builders.ElementBuilders;
import ru.colibri.ui.core.fields.IElement;
import static java.lang.String.format;
    public void testByText() {
        IElement element = ElementBuilders.element()
                .withName("elementByText")
                .withText("visibleText")
                .please();
        String predicate = format(IOSNSPREDICATE_TEMPLATE, element.getText());
        MobileBy expected = (MobileBy) MobileBy.iOSNsPredicateString(predicate);

        By byElementFromFactory = byFactory.byElement(element);
        Assert.assertEquals("Результат работы IOSFactory по text некорректен", expected, byElementFromFactory);
    }

    @Test
    public void testByXPath() {
        IElement element = ElementBuilders.element()
                .withName("elementByXPath")
                .withXPath("//*[@name = 'testXPath']")
                .please();
        By expected = By.xpath(element.getXpath());

        By byElementFromFactory = byFactory.byElement(element);
        Assert.assertEquals("Результат работы IOSFactory по xpath некорректен", expected, byElementFromFactory);
    }

    @Test
    public void testByNestedElement() {
        IElement parentXPath = ElementBuilders.element()
                .withName("elementParent")
                .withXPath("//*[@name = 'testXPath']")
                .please();
// Path: src/main/java/ru/colibri/ui/core/builders/ElementBuilders.java
// @Component
// public class ElementBuilders {
// 
//     public static ElementBuilder element() {
//         return new ElementBuilder();
//     }
// }
// 
// Path: src/main/java/ru/colibri/ui/core/fields/IElement.java
// public interface IElement {
//     String getName();
// 
//     String getContentDesc();
// 
//     String getId();
// 
//     String getText();
// 
//     String getXpath();
// 
//     String getNSPredicate();
// 
//     boolean isSpecific();
// }


// Path: src/test/java/ru/colibri/ui/settings/ios/TestIOSByFactory.java
import io.appium.java_client.MobileBy;
import org.junit.Assert;
import org.junit.Test;
import org.openqa.selenium.By;
import ru.colibri.ui.core.builders.ElementBuilders;
import ru.colibri.ui.core.fields.IElement;
import static java.lang.String.format;

    public void testByText() {
        IElement element = ElementBuilders.element()
                .withName("elementByText")
                .withText("visibleText")
                .please();
        String predicate = format(IOSNSPREDICATE_TEMPLATE, element.getText());
        MobileBy expected = (MobileBy) MobileBy.iOSNsPredicateString(predicate);

        By byElementFromFactory = byFactory.byElement(element);
        Assert.assertEquals("Результат работы IOSFactory по text некорректен", expected, byElementFromFactory);
    }

    @Test
    public void testByXPath() {
        IElement element = ElementBuilders.element()
                .withName("elementByXPath")
                .withXPath("//*[@name = 'testXPath']")
                .please();
        By expected = By.xpath(element.getXpath());

        By byElementFromFactory = byFactory.byElement(element);
        Assert.assertEquals("Результат работы IOSFactory по xpath некорректен", expected, byElementFromFactory);
    }

    @Test
    public void testByNestedElement() {
        IElement parentXPath = ElementBuilders.element()
                .withName("elementParent")
                .withXPath("//*[@name = 'testXPath']")
                .please();
        IElement nestedXPath = ElementBuilders.element()