Вышла Selenide 5.2.4

Вышла Selenide 5.2.4

Прокси снова в деле
20.06.19

Всем привет из лета!

Пока в Эстонии празднуют Иванову Ночь и День Победы, мы выпускаем Selenide 5.2.4

Что нового?


Исправили работу прокси с приложением на localhost

Как вы знаете, Селенид может запускать свой встроенный прокси-сервер для некоторых функций (скачивание файлов, авторизация, логирование и т.п.). Последние версии популярных браузеров (Chrome72+ и Firefox 67+) начали по умолчанию запрещать прокси перехватывать запросы на localhost. Типа из соображений безопасности.

Из-за этого сломалось скачивание файлов у тех ребят, которые запускают AUT на http://localhost:port (как я).

Пришлось поковыряться в настройках и добавить хитрые ключики, которые снова разрешают прокси перехватывать запросы на localhost.

См. PR 950.


Исправили ScreenShooterExtension для JUnit5

Как вы знаете, когда Селенид кидает ошибку (как правило, это подкласс UIAssertionError), он всегда автоматически делает скриншот. Обычно этого достаточно, но иногда люди хотят использовать какие-нибудь свои ассерты (из JUnit, Hamcrest, AssertJ и т.д.) В общем случае для этих ошибок Селенид не может делать скриншот, ведь тогда Селенид должен был бы зависеть от конкретного фреймворка.

Но для трёх самых распространённых в Селениде есть поддержка: JUnit4, JUnit5, TestNG.

Так вот, в ScreenShooterExtension для JUnit5 была ошибка. До сих пор он делал скриншоты только для селенидовских ошибок UIAssertionError. А надо наоборот - для НЕ селенидовских. Вот это мы и исправили.


Улучшили сообщение об ошибке в $$.shouldHave(texts("1", "2", "3"))

Метод $$.shouldHave(texts()) позволяет разом проверить тексты целого ряда элементов. Удобен для проверки, например, целой строки или колонки таблицы. В некоторых (редких) случаях он мог давать не совсем понятное (хоть и корректное) сообщение. Мы его улучшили.

См. issue 454.
Спасибо A.Smashentsev за PR 944.


Метод $.click(offsetX, offsetY) теперь считает координаты от ЦЕНТРА элемента

Не все знают, но у метода $.click() есть метод-побратим $.click(offsetX, offsetY) для клика со сдвигом. Классический метод $.click() кликает в центр элемента. А вот с методом $.click(offsetX, offsetY) сложнее - в некоторых браузерах сдвиг считался от центра, а в некоторых - от левого верхнего угла. Даже в документации Selenium класса org.openqa.selenium.interactions.Actions есть противоречивые сведения на эту тему:

  /**
   * Moves the mouse to an offset from the top-left corner of the element.
   */
  public Actions moveToElement(WebElement target, int xOffset, int yOffset) {
    ...
    // Of course, this is the offset from the centre of the element. We have no idea what the width
    // and height are once we execute this method.
    ...
  }

Теперь официально координаты считаются от центра элемента.

См. PR 950.


Обновили зависимости

Обновили версии зависимостей:

  • WebDriverManager 3.6.1


Новости


Конференции


Андрей Солнцев

ru.selenide.org

20.06.19