Есть сайт на CMS TYPO3 делаю для него тесты на заполнение сайта. На FirefoxDriver все элементарно делается. А вот на ChromeDriver почти перед каждым кликом надо ставить ожидание появления элемента. А работать с другим открывшимся окном вообще не могу. В общем я хотел спорить нет способа сделать ChromeDriver не таким резвым, что бы не писать кучу ожиданий?
то есть вы не ждете элементы после перезагрузки страницы?
(new WebDriverWait(driver, 10))
.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(".//*[@id='typo3-inner-docbody']"))).click();
Ну в FirefoxDriver подобные ожидания писать не надо. А в Хроме без них не находит элементы
Есть такая тема, есть. Надо писать ожидалки для хрома.
Ну тогда буду дальше играться. А то не могу в открывшееся окно перейти, пишет no such element только я еще толком не пойму на коком этапе застопорилось при переключении в окно или во фрейм или уже при поиске самого элемента
Была похожая проблема, решилась установской ImplicitlyWait в 1 секунду.
Ну так радоваться же надо, что хром такой молодец, что на нём ваши тесты вдвое быстрее могут бегать. А чтобы не захламлять тесты ожиданиями перед каждой операцией, есть простое средство - Selenide. Он это делает автоматически.
Сделайте обёртки над базовыми элементами в которых будет прописано ожидание. Потом это все в Пейдж обджект будете использовать и таких проблем не будет. Ну или как писали выше, воспользуйтесь готовым фреймворком/библиотекой
У меня стоит implicitlyWait даже больше чем секунда, не помагает
Спасибо, попробую
Подскажите пожалуйста как в 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=…”) - как там может быть красным?
А я понял, спасибо! А без maven нельзя менять браузер?
Конечно можно. Есть два способа:
- Через командную строку: “ant -Dselenide.browser=…” или “gradle -Dselenide.browser=…”
- Прямо в коде:
Configuration.browser = "chrome";
з ІДЕ походу схема наступна : RUN> Run Configuration > Arguments .
Спасибо!
Если делать по page object, то при вызове каждого блока/страницы прописывается условие его загрузки (и ожидание, пока элемент не появиться), а в тестах уже никакие ожидания вообще писать не надо. Таким образом ожидания достаточно написать только 1 раз для каждого блока/страницы, это не так много.
где это прописывается ?