Вышла Selenide 7.2.0

Вышла Selenide 7.2.0

Теперь далеко отсюда
27.02.24

Чёртов февраль.

Чтобы хоть как-то отвлечься, попробуйте обновиться на Selenide 7.2.0:


Скачиваем файлы из Selenium Grid

Наконец-то!
Теперь вы можете скачивать файлы методом FOLDER и из Selenium Grid.
До сих пор FOLDER работал только при локальном запуске и в Selenoid.

Если вы гоняете браузеры на Selenium Grid и хотите в тестах скачивать файлы методом FOLDER, вам просто нужно будет поменять зависимость

  com.codeborne:selenide:7.1.0

на

  com.codeborne:selenide-grid:7.2.0

И как бы в общем-то всё.

Configuration.remote = "https://qa.grid.my.com:4444/wd/hub";
Configuration.fileDownload = FOLDER;
File quotes = $("#quotes").download(withExtension("txt"));
assertThat(quotes.content()).contains(
  "Любовь сильнее страха",
  "Стыдно не делать ничего. Стыдно дать себя запугать.");

См. issue 1687, PR 2659 и PR 2660.


Скачиваем файлы удалённо с помощью CDP

В предыдущем релизе мы добавили новый метод скачивания файлов CDP, но работал он только локально.

Теперь он также работает с удалёнными браузерами на Selenoid и Selenium Grid.

Configuration.remote = "https://cloud.browsers.my.com:4444/wd/hub";
Configuration.fileDownload = CDP;
File places = $("#places").download(withExtension("csv"));
assertThat(places.content()).contains("Утоли моя печали", "Борисовское");

См. issue 1687, issue 2550 и PR 2661.


Коллекции элементов для мобилок

Мы навалили полезняшек для автотестов мобильных приложений. Появились новые методы для коллекций:

  • SelenideAppium.$$(By)
  • SelenideAppium.$$(Collection<WebElement>)

Оба возвращают объект SelenideAppiumCollection. По сути это то же самое, что старый добрый ElementsCollection, только с объектами SelenideAppiumElement вместо SelenideElement.

SelenideAppiumCollection poetry = $$(By.xpath("//android.widget.EditText")).shouldHave(size(2));
poetry.get(0).scroll(up()).setValue("и в небо сорвутся тромбы");
poetry.get(1).scroll(down()).setValue("багровых кремлёвских башен");

Также добавили метод SelenideAppium.$(WebElement webElement), но вряд ли это вам пригодится.

См. issue 2333 и PR 2656.


Выключили предупреждение хрома про покраденные пароли

После обновления хрома начал выскакивать этот мешающий диалог “ваши пароли покрадены”. Кажется логичным, что в тестах он никому не нужен.

И хотя это выглядит скорее как бага Chrome 122, мы на всякий случай его по-быстрому вырубили.

См. issue 2658 и PR 2662.


Сообщение об ошибке, если нет href

Меня внезапно осенило, почему так много людей мучаются с настройкой прокси и даже не догадываются, что в селениде есть и другие способы скачивания файлов: FOLDER и CDP (которые проще в использовании, а теперь ещё и полноценно работают с удалёнными браузерами).

Возможно, проблема в коммуникации. Все эти годы метод $.download() кидал вот такую ошибку:

The element does not have href attribute: <a id="generate-report">

После этого люди гуглили первую попавшуюся статью 5-летней давности, в которой, конечно, упоминалась только одна альтернатива - PROXY. И ломились изучать прокси.

Теперь сообщение об ошибке будет подсказывать, что методов несколько:

The element does not have "href" attribute: <a id="generate-report">, so method HTTPGET cannot download the file.
Please try another download method: FOLDER, CDP or PROXY.
Read more about possible download methods: https://selenide.org/javadoc/current/com/codeborne/selenide/FileDownloadMode.html

Правда, боюсь, это не поможет, потому что кто же их читает-то…

См. PR 2653.


Обновили Selenium с 4.17.0 на 4.18.1

См. ченджлог Selenium и PR 2655.


Будем надеяться на весну.


Не сдавайтесь.
Не унывайте и не опускайте руки.
Автоматизация тестирования — это не спринт, а долгий тяжёлый марафон.

Теперь далеко отсюда


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

ru.selenide.org

27.02.24