Автоматизируйте рабочие процессы веб-тестирования и просмотра

Когда я работал в отделе обеспечения качества, одной из моих обязанностей было проведение регрессионного тестирования ряда веб-сайтов. В то время существовало лишь ограниченное количество средств автоматизации, поэтому мое решение включало класс роботов Java для выдачи событий мыши и нажатия клавиш. Конечно, это было невероятно хрупко.
В последнее время автоматизация взаимодействия с веб-браузером стала намного проще. Протокол WebDriver определяет действительно хороший набор команд и взаимодействий для взаимодействия с браузером. Язык Wolfram Language (WL) использует этот протокол, чтобы вы могли управлять браузерами непосредственно из сеанса блокнота. Интерактивный характер ноутбука чрезвычайно удобен для поэтапной разработки рабочего процесса веб-автоматизации. В этой истории я покажу вам, как начать работу с этой функциональностью.
Чтобы начать новую сессию веб-браузера, вы используете команду StartWebSession. Без аргументов функции он запустит браузер Chrome на вашем компьютере. Браузер Firefox также поддерживается.

Чтобы открыть веб-страницу, вы можете использовать команду WebExecute. Эта команда является основной функцией, которую вы используете для управления веб-браузером. Вы указываете сеанс и даете ему такую команду, как OpenWebPage, ClickElement или JavascriptExecute:

Чтобы щелкнуть, например, значок поиска (увеличительное стекло в правом верхнем углу), вы можете обратиться к нему с помощью селектора XPath или CSS. Вы можете найти их с помощью консоли разработчика браузера. Хорошо написанная веб-страница использует уникальные идентификаторы для определенных элементов, и в данном случае это «_nav-search». Выполнение команды вызывает поле поиска в браузере:

Точно так же вы можете ввести текст в поле ввода. Например, если я хочу найти «набор данных», я могу указать элемент и текст поиска. Имитация нажатия ввода выполняется путем добавления символа «\n» (новая строка) в конце строки:

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

Результатом является список строк WL, который затем можно использовать для регрессионного теста или дальнейших шагов навигации. Таким же образом вы можете собрать URL-адреса всех изображений на веб-странице, а затем напрямую импортировать эти изображения в сеанс WL для дальнейшего изучения.
Когда вы закончите сеанс браузера, вы можете использовать команду DeleteObject, чтобы завершить его. Это закрывает веб-браузер и завершает соединение:

Для получения дополнительной информации об этой полезной функции посетите страницу руководства Автоматизация веб-браузера. Чтобы узнать больше о том, как начать работу с WL, ознакомьтесь с моим недавним постом под названием «Изучение Wolfram: от нуля до героя». Блокнот с полным кодом, показанным на изображениях выше, доступен здесь. Просто нажмите на эту ссылку, а затем загрузите блокнот на свой рабочий стол.