Всем привет!
Мы выпустили релиз Selenide 5.14.0.
Стабилизировали новый способ скачивания файлов FOLDER
… который появился в Selenide 5.13.0.
Вот что поменялось в 5.14.0:
-
Каждый раз, когда селенид открывает браузер, он создаёт для него уникальную папку для скачиваний. Это помогает избежать ситуаций, когда параллельные тесты одновременно скачивают файлы в одну и ту же папку, и невозможно понять, где чей файл.
См. issue 1220 и PR 1221.
- Увы, это не работает для IE и Safari (которые в принципе не позволяют задать папку для скачивания файлов)
- Также это работает только для тех браузеров, которые открывает селенид.
- Если же вы сами открываете браузер и передаёте его селениду, вам нужно будет создать уникальную папку самостоятельно и передать её селениду:
- Либо с помощью нового метода
setWebDriver(driver, proxy, downloadsFolder)
, - либо конструктора
SelenideDriver(..., downloadsFolder)
.
- Либо с помощью нового метода
- Перед началом каждого скачивания файла селенид очищает папку – см. PR 1252
- Селенид удаляет все пустые папки для скачиваний в конце тестов – см. PR 1247
Добавили проверку $$.shouldHave(itemWithText("any text"))
В отличие от классической $$.shouldHave(texts("text1", "text2"))
, она означает, что в коллекции есть хотя бы один элемент с данным текстом.
Спасибо Luis Serna за PR 1194.
Кстати, это первый коммит в селенид аж из Боливии!
Добавили поддержку браузера Safari
Когда-то селенид поддерживал Safari, но тогда куча всего в нём не работало.
В какой-то момент нам надоело с ним мучаться, и мы поддержку выпилили.
Но сейчас попробовали новый подход. Вроде как завелось (не всё, конечно).
Как обычно, достаточно просто прописать
Configuration.browser = "safari";
либо-Dselenide.browser=safari
Делитесь впечатлениями.
См. issue 1236 и PR 1237.
Добавили метод SelenideDriver.screenshot(fileName)
Полезно, если вы создаёте “нестатический” вариант драйвера (new SelenideDriver()
) и хотите снимать скриншоты.
Теперь можно.
См. issue 1166 и PR 1227.
Добавили метод SelenideDriver.screenshot(OutputType)
Иногда хочется получить скриншот в формате Base64. Например, этот формат хотят некоторые инструменты для сравниения скриншотов.
Теперь их можно получить таким вызовом:
String screenshot = Selenide.screenshot(OutputType.BASE64);
byte[] decoded = Base64.getDecoder().decode(screenshot);
BufferedImage img = ImageIO.read(new ByteArrayInputStream(decoded));
См. issue 1224 и PR 1231.
Теперь селенид снимает скриншот в случае падения switchTo()
Как вы знаете, Селенид автоматически делает скриншот в случае падения тестов.
Но мы обнаружили, что Селенид НЕ делал скриншот, если упал один из этих методов:
switchTo(frame)
switchTo(window)
switchTo(alert)
Теперь мы исправили эту досадную оплошность.
См. issue 1190 и PR 1240.
Добавили хрому опцию --disable-dev-shm-usage
Мы тут вычитали, что без этой опции Chrome может крэшиться из-за out of memory error.
- Почему никто из вас на это не жаловался?
- Стало ли лучше после добавления это опции?
P.S. Позже люди жаловались и на наличие этой опции. Эпопея пока не окончена.
Исправили работу Sizzle селекторов на страницах с Dojo.js, troop.js и т.п.
Сделали метод $.toString()
безопаснее
См. issue 1241 и PR 1245.
Улучшили сообщение об ошибке, если элемент внезапно пропал
См. issue 1013 и PR 1239.
Обновились на WebDriverManager 4.1.0
См. WDM Changelog.
Видеообзор
Смотрите видеообзор данного релиза.
Новости
- Ничоси! Курс на Udemy “Selenium и Selenide для начинающих Automation QA, QC на Java”
- Про селенид на немецком
- Пример проекта на Selenide+Selenoid+Docker от d3m0
- Ещё пример: сравнение скриншотов с Selenide+Allure+Ashot+Screen Diff Plugin от Evgeniy Asovin
- Ещё пример: Selenide + Appium + Allure + TestNG от qaschevychelov
- Сравнение Selenide и Selenium 2019 года: Choosing tools for UI testing: Selenium or Selenide? - 17.09.2019
- Статья Jakub Skibiński в блоге компании Sonalake: Selenide: A Powerful Testing Framework - 19.06.2020
- Статья “Почему мы перешли на Selenide, попутно написав более 200 новых автотестов” - 30.04.2020
- Switch from Serenity to Selenide - 22.05.2020 от Yuri Kudryavtsev (Maxilect company)
И целая серия статей от Alexander Pushkarev:
- Test automation framework architecture — Layered architecture example with vanilla JUnit + Selenide
- UI Automation for mortals: elegant Page Objects with Java and Selenide
- Effective test automation: subcutaneous tests as a faster alternative to Selenium-driven testing
ru.selenide.org
17.08.20