Есть сайт на CMS TYPO3 делаю для него тесты на заполнение сайта. На FirefoxDriver все элементарно делается. А вот на ChromeDriver почти перед каждым кликом надо ставить ожидание появления элемента. А работать с другим открывшимся окном вообще не могу. В общем я хотел спорить нет способа сделать ChromeDriver не таким резвым, что бы не писать кучу ожиданий?
Ну тогда буду дальше играться. А то не могу в открывшееся окно перейти, пишет no such element только я еще толком не пойму на коком этапе застопорилось при переключении в окно или во фрейм или уже при поиске самого элемента
Ну так радоваться же надо, что хром такой молодец, что на нём ваши тесты вдвое быстрее могут бегать. А чтобы не захламлять тесты ожиданиями перед каждой операцией, есть простое средство - Selenide. Он это делает автоматически.
Сделайте обёртки над базовыми элементами в которых будет прописано ожидание. Потом это все в Пейдж обджект будете использовать и таких проблем не будет. Ну или как писали выше, воспользуйтесь готовым фреймворком/библиотекой
Подскажите пожалуйста как в Selenide переключиться на chrome я в интернете поискал, но у меня так и не получается. Тут почитал How Selenide creates WebDriver · selenide/selenide Wiki · GitHub Я так понял нужно написать Dbrowser=org.openqa.selenium.chrome.ChromeDriver;
Но у меня Dbrowser все время красным горит.
Что значит красным? Где вы его прописали?
“-Dselenide.browser=chrome” нужно прописать в командной строке (например, “mvn -Dselenide.browser=…” или “mvn -Dselenide.browser=…”) - как там может быть красным?
Если делать по page object, то при вызове каждого блока/страницы прописывается условие его загрузки (и ожидание, пока элемент не появиться), а в тестах уже никакие ожидания вообще писать не надо. Таким образом ожидания достаточно написать только 1 раз для каждого блока/страницы, это не так много.