Изменения в Selenide 2.19

Изменения в Selenide 2.19

Оговорки по фрейму
21.06.15

Категорически приветствую!

Вышел Selenide 2.19.

Исправлено несколько мелких проблем, в основном касающихся работы с фреймами и борьбой с самоподписанными сертификатами.

Работа с вложенными фреймами

Дьявол отлично поработал в начале девяностых. Венец его творчества - это фреймы. На дворе 2015 год - биты, бандиты, рэкетиры и бригады остались в прошлом, а фреймы живы и здоровы и до сих пор больно бьют.

Selenium Webdriver умеет худо-бедно переключаться во фрейм, но оказывается, фреймы бывают вложенные! И тут вебдрайвер сдаётся и заставляет пользователей последовательно переключаться сначала в один фрейм, потом во фрейм внутри него и т.д. по цепочке.

В Selenide 2.19 мы добавили удобный метод для переключения сразу в нужный вложенный фрейм одной командой:

  import static com.codeborne.selenide.Selenide.*;
  
  switchTo().innerFrame("parentFrame", "childFrame_2", "childFrame_2_1");

Кстати, поиск фрейма ещё и работает быстрее, чем в Selenium, из-за более оптимального использования селекторов.

Спасибо @dimand58 за этот pull request!

PhantomJS теперь умеет работать с самоподписанными сертификатами

Ещё одна находка дьявола - это самоподписанные сертификаты. Это когда администраторы в вашей конторе очень хотят секьюрити и поэтому запускают тестовое приложение на https (типа https://test.company.ru), но на настоящий SSL сертификат деньги жмотят, и поэтому используют в тесте SSL сертификат, который сами же и подписали. В итоге секьюрити никакой не получается, а бедные тестировщики-автоматизаторы получают себе вечный геморрой “браузер плюётся ворнингами”, “файлы не качаются”, “в IE сайт не открывается”. Дьявол довольно потирает копытца.

Производители вебдрайверов тоже подкидывают углей в топку. Ведь есть же стандартная настройка "acceptSslCerts", которую понимают Chrome, FF и даже htmlunit. Так нет же, PhantomJS её не понимает, требует какую-то свою настройку! А IE так вообще не понимает никаких настроек.

В общем, мы докрутили что надо, теперь PhantomJS открывает “https://test.company.ru” без ругательств.

С IE пока всё глухо. Кто знает рецепт, поделитесь.

Метод $.download() больше не ругается на самоподписанные сертификаты

Если кто не знал, в Selenide есть аццки удобный метод для скачивания файлов:

File cv = $("#cv").download();

Теперь и он не ругается при попытке скачать файл с “https://test.company.ru”.

Метод $.setValue() также генерирует событие “focus”

Раньше метод $.setValue() (в режиме fastSetValue=true) генерировал события “keydown”, “keypress”, “input”, “keyup”, “change”. Теперь добавилось ещё “focus”. Я на самом деле не уверен, нужно ли это. Сделал на всякий случай.

Исправили багу со скриншотами из Selenide 2.18

В Selenide 2.18 появилась одна забавная бага: Selenide начал делать слишком много скриншотов. Даже когда тесты не падали. Это не вызывало падения тестов, просто занимало больше место на диске.

Обновились до Selenium Webdriver 2.46.0

Список изменений в 2.46.0 внушителен.

  • Появилась бета-версия вебдрайвера Marionette (какой-то новый замут с Firefox)
  • В каких-то случаях обещали 10-кратное ускорение старта селениум сервера
  • Смерть нативных событий в Firefox 33+
  • Смерть старой Оперы (Presto-based)
  • Ну и много всего другого


А что у вас новенького?


21.06.15