Ошибка при создании List'a ElementsContainer

Странно, в Selenide есть тест, который конкретно это проверяет, и он зелёный.

А можете скинуть последнюю версию вашего года?
А то в изначальной версии нет вообще упоминания о классе “MyForm1”.

Я может быть как-то непонятно выражаю свои мысли(( Вы подскажите, что я не так говорю…я постараюсь переформулировать.
Хорошо давайте еще раз.
Итак код который выдаст исключение, что не найден css class “MyForm” указан ниже.

Какая цель: Не выкидывать исключение если элемента нет. Зачем? Да потому, что он появится только если нажать кнопку N. В противном случае это просто заглушка. Нажали на кнопку N, после чего обращаемся к этому элементу и вот уже тогда его можно ждать 4 секунды. Простите, но я просто до сих пор не вижу ответа на свой вопрос) То, что вы говорите про ожидание я знаю - поиск элемента осуществляется в течении 4х секунд - ок. Но мне этого не нужно. Вот я и спрашиваю можно ли сделать с помощью Selenide такую заглушку.

Вот это работать не будет:

    
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<div class="MainDiv">
	</div>
</body>
</html>

public class MyPage {
    @FindBy(className = "MyForm")
    private MyForm myForm;

    public MyForm getMyForm() {
        return myForm;
    }
}

public class MyForm extends ElementsContainer {
    @FindBy(className = "MySubForm")
    private List<MySubForm> mySubForm;

    public List<MySubForm> getMySubForm() {
       return mySubForm;
    }
}

public class MySubForm extends ElementsContainer{
    @FindBy(className = "myElement")
    private SelenideElement myElement;

    public SelenideElement getMyElement() {
        return myElement;
    }
}

public class MyTest {

    private static final Logger logger = LoggerFactory.getLogger(MyTest.class);
    private RemoteWebDriver driver;
    private MyPage myPage;

    @Test
    public void myTestFunc() throws InterruptedException {
    }

    @BeforeClass
    public void initDriver() throws MalformedURLException {
        DesiredCapabilities capabilities = DesiredCapabilities.chrome();
        RemoteWebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capabilities);

        driver.manage().window().maximize();
        WebDriverRunner.setWebDriver(driver);
        myPage = open("file:///home/bob/all/ws/artifactId/src/test/java/test/fortest.html", MyPage.class);
    }

    @AfterClass
    public void driverQuit() {
        WebDriverRunner.getWebDriver().quit();
    }
}

@forgotNick Привет!
Я проснулся после зимней спячки. :slight_smile:

Спасибо за пример кода. Благодаря ему я наконец понял, в чём проблема.
Проблема случается, когда в пэдж-объекте есть

  1. несуществующее поле, внутри которого есть
  2. список несуществующих элементов.

Проблему 1 и 2 по отдельности Selenide умеет решать, а вот обе вместе - нет.
Буду думать, как решать.
Завёл тикет в гитхабе: Error when creating PageObject with unexisting container with list of unexisting elements · Issue #282 · selenide/selenide · GitHub

Добрый день!
Только сейчас увидел сообщение)
Рад, что это оказалось полезным!