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

Автор и ведущий блога: Алексей Баранцев

Ну вот и всё. Нет больше нативных событий в FirefoxDriver. Следующая версия 2.48 выйдет уже без них.

Впрочем, я думаю, что все уже привыкли к их отсутствию. Последняя версия, в которой они ещё действительно работали -- это был Firefox 34 (я писал об этом в анонсе релиза Selenium 2.45).

Да здравствуют синтезированные события! Ну и Marionette, конечно. Но об этом в следующий раз.

В следующей версии Selenium произойдёт изменение, которое нарушает обратную совместимость, но увеличивает совместимость со стандартом W3C WebDriver: операция getCurrentUrl будет возвращать адрес, который пользователь видит в адресной строке браузера, а не адрес текущего фрейма.

Соответственно, это изменение затронет тех, кто активно работает с фреймами, в частности, проверяет их адреса.

Дальше подробности для тех, кто забеспокоился :)

Почему при разработке стандарта было принято решение об изменении семантики этой операции?

Причин целых две:

1) "Бытовая": инструмент должен возвращать тот адрес, который видит пользователь. Ранее, руководствуясь той же самой логикой, было принято решение о том, что операция getTitle должна возвращать не заголовок текущего фрейма, а заголовок фрейма верхнего уровня, тот самый, который пользователь видит в названии окна или вкладки браузера.

2) "Техническая": получить адрес текущего фрейма можно и через JavaScript, а вот получить адрес контекста верхнего уровня через JavaScript невозможно из соображений безопасности -- браузер не разрешает выходить за пределы текущего контекста, если при этом нарушается знаменитое правило same origin policy. Поэтому решили, что операция для получения адреса контекста верхнего уровня является более важной.

Что надо сделать, чтобы заранее подготовиться к выходу следующей версии Selenium?

  • найти все места, где используется операция getCurrentUrl
  • если там никаких фреймов нет -- значит вы в полной безопасности
  • если эта операция используется для получения адреса текущего фрейма -- надо вместо неё использовать вот такой вспомогательный метод:
public getCurrentFrameUrl(WebDriver driver) {
return ((JavascriptExecutor) driver).executeScript("return window.location.href").toString();
}

Оказывается, в инструмент Borland Silk Central добавлена поддержка выполнения тестов, разработанных с использованием Selenium. Узнал об этом совершенно случайно, наткнувшись на вот этот ролик:

Выступление Алексея Баранцева на встрече Tallinn DevClub.

Многим знаком инструмент Selenium. Это стандарт de facto (а вскоре и de juro) в области автоматизации веб-приложений и мобильных приложений. Невероятно популярный инструмент. Но удивительно то, что Selenium развивается без чёткого плана. С одной стороны, это вполне объяснимо – команда разработки представляет собой группу энтузиастов, работающих над проектом в свободное время. С другой стороны, непонятно, почему коммерческие вендоры не могут повторить этот успех. Вот вы верите в то, что такое возможно?

 

А в нашу группу в Фейсбуке, посвященную Selenium, только-что добавился 1000-ый участник.

Хотите, чтобы Selenium Grid можно было быстро разворачивать при помощи Bitnami?

Тогда проголосуйте за него!

Можно не только голосовать, но также лайкать и шарить, это тоже добавляет баллов.

Зачем это надо и что это вообще такое?

Библиотека быстроразвёртываемых приложений Bitnami позволяет быстро, буквально в несколько кликов, поднимать в облаках виртуалки с предустановленными приложениями, либо устанавливать преднастроенные приложения на уже существующий (локальный или облачный) сервер.

Они регулярно устраивают голосования, чтобы определить рейтинг популярности приложений, которые пока не включены в библиотеку. Победитель, как несложно догадаться, получает право туда попасть.

Есть такой язык программирования! Он представляет собой типизированное надмножество языка JavaScript, и компилируется в этот самый JavaScript. В общем, как JavaScript, только лучше. Так утверждают авторы языка. Разработан он команией Microsoft, если что :)

Ну а для того, чтобы в написанных на этом языке программах можно было пользоваться какой-нибудь JavaScript-библиотекой, необходимо для неё сделать типизированную обёртку. Для многих популярных библиотек такие обёртки уже есть, и Selenium не исключение. Найти обёртку можно в официальном репозитории (ищите по слову Selenium).

Так что если вы любите JavaScript, но вместе с этим страдаете от его недостатков -- попробуйте TypeScript!

Go to top