Привет!
Мы выпустили Selenide 3.8! В нём мы подправили много мелких недочётов и сделали некоторые небольшие, но полезные полезности.
Исправлена загрузка файлов (upload) на удалённых браузерах в гриде
Спасибо Alexei Vinogradov за исправление грида!
Теперь можно отключать создание *.html файлов
Когда ваш драгоценный тест падает, по умолчанию Selenide создаёт 2 файла:
- Скриншот - файл *.png
- Исходный код текущий страницы - файл *.html
Оказалось, что не все хотят сохранять *.html-файлы. Например, в случае одностраничных приложений в этот html-файл попадал html-код всех-превсех страниц приложения, то есть файлы получались большими и бессмысленными.
Теперь можно отключить сохранение html-файлов - как обычно, либо через системную переменную:
mvn test -Dselenide.savePageSource=false
либо прямо в коде:
Configuration.savePageSource = false;
Спасибо Boris Osipov за этот pull request!
Добавлен метод $.dragAndDropTo(WebElement)
До сих пор в Selenide был только метод $.dragAndDropTo(String)
,
где строковой параметр - это CSS селектор целевого элемента. А иногда хочется определять целевой элемент и по-другому.
Для таких случаев теперь есть метод $.dragAndDropTo(WebElement)
позволяет перетащить элемент в другое место. Например:
SelenideElement target = $(byText("Drop here"));
$("#from").dragAndDropTo(target);
См. issue #355
Теперь аннотации SimpleReport
и SoftAsserts
для TestNG - потокобезопасные
Если вы используете аннотации SimpleReport
или SoftAsserts
и фреймворк TestNG (бедняги!),
да ещё и запускаете тесты параллельно в несколько потоков, то вы могли замечать,
что иногда отчёт о прохождении тестов пустой. А иногда могли ловить ConcurrentModificationException
.
Оказалось, TestNG конкретная редиска и вообще нехороший фреймворк.
Если вы объявляете @Listener(SoftAsserts)
у одного класса, TestNG
создаёт только один инстанс класса SoftAsserts
и использует для всех тестов, даже параллельных.
А вот JUnit, умница и молодец, создаёт новый экземпляр каждого тест-класса и каждого правила для каждого следующего теста. Таким образом исключаются всяческие конфликты и случайные зависимости теста от предыдущих тестов.
В общем, теперь мы это исправили, и SoftAsserts
умеет работать параллельно в нескольких потоках
даже в TestNG.
Добавили методы в класс Selectors
: byCssSelector()
и byClassName()
Я до сих пор не уверен, что это так уж нужно, но народ просил.
Теперь в классе Selectors
есть by*
аналоги всех методов из селениумовского By.*
.
См. #360.
Исправили JavaScript ошибку при запуске браузера Edge
Теперь Selenide можно использовать и с новым микрософтовским браузером Edge. Говорят, он быстр и свеж, как Тимати.
См. #339.
Теперь метод $.screenshot()
сохраняет скриншот в правильное место
Есть в Selenide такой метод, который сохраняет скриншот не всей страницы, а одного элемента:
String screenshotFile = $("#footer").screenshot();
Всё бы хорошо, но он сохранял скриншоты в корневую папку проекта.
Теперь мы его исправили, и он складывает файлы в папку build/reports
, как и остальные методы для снятия скриншотов.
См. #290.
Добавлена защита против неправильного использования soft asserts
Теперь Selenide кинет ошибку, если вы включите режим “Soft asserts”, но забудете добавить соответствующую аннотацию к тест-классу.
См. #302.
В Javadoc всех методов SelenideElement
добавлены ссылки на имплементации этих методов
Например, метод $(“input”).setValue(“hello”)
реализован в классе SetValue
См. #367.
Обновились до htmlunit 2.23
См. список изменений
Новости
- Статья про Selenide на испанском от Dario Lamy
- Почему разработчики должны быть хорошими тестировщиками - мутный чувак, но мысли правильные
- Новая крутая конференция в Питере от создателей Joker и JPoint: Гейзенбаг - многообещающе! Планирую там выступить.
- Новая классная статья от дядюшки Боба: ПЕНА
- Что на самом деле нельзя хардкодить
- Настоящие пэдж-объекты
Десерт
И на десерт - свежая шутка про Чака Норриса:
Чак Норрис не использует Selenide.
Чак Норрис пишет тесты на голом селениуме.
А что, он же бессмертный, у него есть на это время.
Обновляйтесь!
ru.selenide.org
06.08.16