Debug, редактирование и подсвечивание локаторов в runtime

По моим личным наблюдениям, львиная доля времени при написании авто-тестов уходит на редактирование/проверку/нахождение локаторов элементов (XPath, css selector, …)

А почему бы не редактировать локаторы прямо во время запуска теста? Хочу предложить к рассмотрению видео с данной возможностью:

После завершения работы с debug окном тест продолжает своё выполнение, что, по-моему, немаловажно.

2 лайка

Выглядит прикольно. Из попапа можно искать нужные локаторы и даже дописывать тест. Но судя по всему это работает только через PHPUnit. Было б неплохо сделать более универсальную реализацию.

Что-то подобное @dzhariy делал. Только десктопное.

Да, это прикольно. Два проекта на похожую тему, стартовали практически одновременно и решают похожие задачи.
Изначально, идея SWD Page Recorder была тоже заточена под интеграцию с кодом на C#. Чтобы приложение можно было вызвать из теста и импортировать в него ВебДарйвер. Но, потом я пришел к тому, что такое решение будет слишком техническим и ограничит круг пользователей.

Тогда я сконцентрировался на разработке более простого, UI-ного решения. Сергей (@blackakula), если вы планируете развивать приложение, то мы можем пообщаться по этому поводу. Я могу поделится списком фич, которые появятся в SWD Page Recorder не скоро, но, вы можете реализовать их уже сейчас у себя. Кроме того, мы можем подсматривать некоторые решения друг у друга.

Простите за ламерский вопрос, но разве Selenium IDE не предназначен как раз для этого?

И разве нельзя подбирать XPath и другие локаторы с помощью встроенных средств браузера - Firebug и Chrome developer tools?

Хороший вопрос. Видимо, я действительно очень скомканно описал тему, если он возник.

Selenium IDE - хорошая штука. Можно даже покрыть весь свой сайт скриптами на Selenium IDE. Но рано или поздно многим из нас хочется написать свой фреймворк с блэкджеком и плюхами: отделить представление от логики, изобрести пару паттернов проектирования, понять зачем нужен SOLID. Думаю, именно так появились Behat и Codeception.

У нас в компании тоже был свой фреймворк. Когда тестов было меньше 100, его легко было поддерживать. Я сам пользовался такими плагинами, как Firepath, чтобы написать локатор к очередному элементу страницы. Но проблема была в другом: Firepath, Selenium IDE и другие инструменты не отвечают на вопрос “внесен ли уже локатор для искомого элемента страницы в ваш тест-фреймворк?”. А даже если и внесен, то по какому ключу я смогу найти локатор среди тысяч (да-да, а может и больше) других локаторов. Вам повезло, если вы не сталкивались с этими проблемами.

Чаще всего в любом фреймворке легко вытянуть все локаторы, которые относятся к конкретной странице. Но не подставлять же каждый из них вручную в Firepath? Я предпочел сделать маленький debug-инструмент, который будет это делать за меня: подсвечивать найденные элементы, показывать, какие не были найдены, при наведении на элемент показывать, какой ключ в системе ему соответствует.

Думаю, blackakula и dzhariy будет также небезынтересно ознакомиться вот с этим проектом:

Более конкретно:
http://www.qualitiasoft.com/object-management.php
http://www.qualitiasoft.com/resources/why-do-you-need-sophisticated-object-identification-and-management-for-selenium-webdriver/

Спасибо, Алексей. Тулбарчик с инструментарием внизу браузера у них действительно интересный

Qualitia выглядит конечно клево, но слишком уж непонятно… Непонятны условия поставки этого продукта. Судя по сайту, единственный вариант установить полную версию - звонить в Индию.

Да, и вероятно, это продукт не бесплатный. И довольно стремный.
Вот, у них есть вебинар на 55 минут о продукте, в котором… нет ни одного места с демонстрацией продукта :smiley:

Но, тут ведь самое главное – это идею подсмотреть

У меня видео не запускается. Я полчаса искал по всему сайту ссылку на скачивание или хотя бы информацию о цене. Было бы интересно хотя бы демо-версию пощупать.

Если я правильно понял, они сделали high-level дизайн над самим языком программирования. То есть, я не могу залезть в код и написать собственный “умный алгоритм”. Потому, мне кажется, Qualitia может быть полезной лишь в том случае, когда писатель авто-тестов не умеет писать программы.

Я ж вам ссылку дал, чтобы хорошие идеи тырить (если они там есть), а не ругать, как там всё плохо :smile:

Так точно :slight_smile:

Но, вначале нужно поругать, а потом стырить :smiley:

Переписал инструмент под facebook/php-webdriver. Реализовал отдельным, переиспользуемым классом, который теперь можно подключить в любую другую библиотеку, использующую facebook webdriver.
Репозиторий: GitHub - blackakula/wdebug

Можете еще добавить небольшой анонс через форму Автохамяка

Тогда упоминание об инструменте появится в следующем дайджесте в эту пятницу