Привет!
Наконец-то мы выпустили Selenide 3.0. Уффф. Свершилось.
Внимание, версия 3.0 - это полный апгрейдец, то есть кое-что может перестать работать.
Не пугайтесь, если вы использовали только публичный API и не использовали @Deprecated методы, то для вас ничего не изменится. А если лезли в кишки, то читайте внимательно.
Исторический экскурс
Версия Selenide 1.0 была создана в 2011 году в казематах Codeborne и широко не рекламировалась. Примерно год Selenide мариновался и зрел. Мы пробовали использовать его в разных проектах - на Java, Scala, Groovy. Каждый раз обнаруживали, что API опять неудобен и требует доработок. :)
Наконец, в марте 2013 мы поехали в Киев на конференцию SeleniumCamp и к этому событию выпустили версию Selenide 2.0.
В ней мы повыкидывали весь хлам и оставили только новый API.
Этот момент можно считать днём рождения “публичной” версии Selenide.
На тот момент в классе SelenideElement
было всего-то с десяток методов. Кстати, сначала он назывался ShouldableWebElement
. :)
С этого момента вышло 25 версий Selenide, в ней появилось множество новых функций и своё legacy, свои @Deprecated методы. Назрели перемены.
Поэтому наконец мы собрались с силами и выпустили Selenide 3.0
Новые функции в Selenide 3.0
Функция всего одна - метод Selenide.updateHash()
. Она полезна при тестировании аяксовских приложений, которые реагируют на изменение
“#” в URL. Метод updateHash()
меняет “#bla-bla” в URL, не перезагружая всю страницу.
Пример использования здесь.
Спасибо @fabienbancharel за pull request #254
Обновили зависимости
- обновились до Sizzle 2.2.1
- обновились до Guava 19.0
- обновились до TestNG 6.9.10
Опять же, это касается только тех, кто использует соответствующие функции и библиотеки.
Большой рефакторинг
- Мы нещадно порефакторили класс
AbstractSelenideElement
. Теперь вместо одного большого класса у нас будет много маленьких классов (в пакетеcom.codeborne.com.commands
), отвечающих каждый за свою задачу. - Вы можете легко переопределять любой из методов
SelenideElement
. - И вы даже можете добавлять свои методы в дополнение к стандартным методам Selenide и Selenium.
Подробнее об этом будет отдельный пост, но пример можно подсмотреть в тестах самого Selenide.
Спасибо Якову Крамаренко за идеи и ночные дискуссии.
Большая чистка
Как мы предупреждали в предыдущем анонсе, мы подчистили старый хлам. А именно:
- Удалили устаревшие условия:
notPresent
-> используйте$.shouldNot(exist)
или$.shouldNotBe(present)
.hasOptions
-> Используйте$.selectOption()
или$.selectOptionByValue()
.options
-> Используйте$.selectOption()
или$.selectOptionByValue()
.hasNotClass
-> Используйте$.shouldNotHave(cssClass("abc"))
- Удалили класс
JQuery
- Удалили класс
PrettyReportCreator
(используйтеTextReport
для JUnit или TestNG) - Удалили устаревшие методы
Selenide.switchToWindow(title)
-> используйтеswitchTo().window(title)
Selenide.switchToWindow(index)
-> используйтеswitchTo().window(index)
- Удалили устаревшие методы
WebDriverRunner.ie()
-> используйтеWebDriverRunner.isIE()
WebDriverRunner.htmlUnit()
-> используйтеWebDriverRunner.isHtmlUnit()
WebDriverRunner.phantomjs()
-> используйтеWebDriverRunner.isPhantomjs()
WebDriverRunner.takeScreenShot()
-> используйтеScreenshots.takeScreenShot()
- Удалили устаревшие методы
$.should*(String message, Condition condition)
-> используйте$.should*(condition.because(message))
- Удалили класс class
com.codeborne.selenide.impl.Quotes
, потому что он переехал в Selenium Webdriver (теперь этоorg.openqa.selenium.support.ui.Quotes
)
Смело обращайтесь, если у вас всё-таки что-то сломалось.
Будем вместе решать, где исправлять! Мы к этому готовы.
Новости
- Selenide попала в список Лучшие инструменты и сайты про Java 2015
- Статья про Selenide в рождественском календаре Java Effective UI tests with Selenide
- Статья про Selenide на японском языке. На японском, Карл! (chrome -> translate в помощь)
- 15ый выпуск подкаста Radio QA Работаем за идею или за деньги?. Говорят, было жарко.
- Русскоязычный чат тестировщиков на слаке softwaretesters
Ну и с наступающим вас!
Быстрых и эффективных тестов! Пусть селекторы селектяцца, сервисы мочацца, базы данных инмеморяцца, а разработчики юнит-тестяцца.
Андрей Солнцев
ru.selenide.org
30.11.15