Странно, в Selenide есть тест, который конкретно это проверяет, и он зелёный.
А можете скинуть последнюю версию вашего года?
А то в изначальной версии нет вообще упоминания о классе “MyForm1”.
Странно, в 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 Привет!
Я проснулся после зимней спячки.
Спасибо за пример кода. Благодаря ему я наконец понял, в чём проблема.
Проблема случается, когда в пэдж-объекте есть
Проблему 1 и 2 по отдельности Selenide умеет решать, а вот обе вместе - нет.
Буду думать, как решать.
Завёл тикет в гитхабе: Error when creating PageObject with unexisting container with list of unexisting elements · Issue #282 · selenide/selenide · GitHub
Добрый день!
Только сейчас увидел сообщение)
Рад, что это оказалось полезным!