Вышла Selenide 6.14.0

Вышла Selenide 6.14.0

Полный вперёд!
08.05.23

Привет!

Пока не начался контрнаступ, давайте-ка обновимся на Selenide 6.14.0 - а то потом будет не до него.

В нём есть несколько изменений, которые как будто не очень большие, но могут чего-нибудь сломать. Поэтому очень советую не оттягивать и обновиться сейчас.

Ускорили дебаг

Когда дебажишь свой тест и останавливаешься на брейкпойнте, иногда можно заметить, что IDE очень долго отображаешь значения полей в пэджобжекте. Вот в таком состоянии IDE может подвиснуть надолго:

Selenide. debug. slow.

Причина в том, что для отображения каждого поля Selenide обращается к вебдрайверу, чтобы получить имя тэга, актуальный текст и атрибуты элемента. Зато через некоторое время вы могли увидеть актуальную картинку:

Selenide. debug. slow. result.

Теперь этот процесс должен сильно ускориться. Селенид больше не будет обращаться к вебдрайверу, а просто покажет локатор элемента:

Selenide. debug. slow. result.

Но и формат метода $.toString() / $$.toString() тоже изменился. Будьте готовы.

См. issue 2253. и PR 2269.

Но не переживайте, это всё касается только дебага. При падении теста вы по-прежнему будете получать полную информацию об элементе с блекджектом и скриншотами.

Убрали флажок хрома --no-sandbox

История с этим флажком мутная. Лично я не вижу никакой разницы, запускать хром с ним или без него.

Но

  1. Некоторые пользователи говорят, что без флажка --no-sandbox хром не запускается в докере
  2. А другие пользователи говорят, что с флажком --no-sandbox процесс хрома остаётся висеть в фоне и пожирает весь CPU. Но это вроде только на винде (?)

В общем, мы убрали этот флажок, потому что пользователям №1

  • легко обнаружить проблему (хром тупо не запускается)
  • легко добавить его самостоятельно:
    Configuration.browserCapabilities = 
      new ChromeOptions().addArguments("--no-sandbox");
    

См. issue 2270 и PR 2271.


Добавили метод step для отчётиков

Если вы используете селенидовский встроенный отчёт (TextReport), то теперь можете группировать действия в “шаги” с помощью нового метода step:

@Test
void authentication() {
  step("login",()->{
    open("/login.asp");
    $("#username").val("u");
    $("#password").val("p");
  });

  step("logout",()->{
    $("#logout").click();
    $("#goodBye").shouldHave(text("Good bye looser!"));
  });
}

В отчёте шаги будут визуально выделяться.

+---------------+-----------------------------------------------+-------+------+
| Element       |Subject                                        |Status | ms.  |
+---------------+-----------------------------------------------+-------+------+
| login         |                                               |PASS   | 4000 |
|    open       | http://127.0.0.1:8080/my_account/account.html |PASS   | 2662 |
|    #username  | val "u"                                       |PASS   | 300  |
|    #password  | val "p"                                       |PASS   | 400  |
| logout        |                                               |PASS   | 1023 |
|    #logout    | click                                         |PASS   | 923  |
|    #goodBye   | should have text "Good bye looser!"           |PASS   | 100  |
+---------------+-----------------------------------------------+-------+------+

Кстати, шаги могут быть вложенными друг в друга.

См. issue 2172. Спасибо Maksim @Au6ojlut за PR 2250.


Добавили метод $.dragAndDrop(DragAndDropOptions)

Теперь метод $.dragAndDrop приобрёл более логичное звучание: сначала “что”, потом “куда” и наконец, “как”.

$("#drag1").dragAndDrop(to("#div2"));
$("#drag1").dragAndDrop(to("#div2").usingJS());

Спасибо Maksim @Au6ojlut за PR 2245.


Разрешили двигать браузер за экран

Исправили мелкую багу, из-за которой нельзя было проставить негативные значения в позиции браузера:

Configuration.browserPosition = "-1900x-450";

Слабо себе представляю, зачем это может быть полезно, но исправили.

См. issue 2258 и PR 2259.


Путь к бинарнику Edge

В селениде есть настройка Configuration.browserBinary, позволяющая задать путь к бинарнику браузера. (на всякий случай: в большинстве случаев её не нужно задавать).

Раньше эта настройка не поддерживалась для браузера Edge, а теперь поддерживается. Ура.

Спасибо Vladislav Velichko за PR 2267.


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


Новости


Статистика

Количество ежемесячных скачиваний Селенида перевалило за 600 тыщ!


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

ru.selenide.org

08.05.23