как узнать версию selenium
Получить версию браузера с помощью selenium webdriver
Как я могу использовать версию браузера?
6 ответов
на capabilities свойство-это словарь, содержащий информацию о самом браузере, поэтому это должно работать:
этот ответ привел меня по правильному пути, но специфичен для python, и тема более широкая. Итак, я добавляю ответ для Java, который был немного сложнее. В это время я использую селен 2.25.0.
Если ваша упаковка вашего WebDriver так, что это EventFiring вам придется сделать пользовательскую реализацию EventFiringWebDriver.
просто публикация, потому что это была проблема, с которой я столкнулся.
хотя это может не совсем ответить на вопрос выше, это все еще может быть полезно для тех, кто ищет способ кодирования теста на основе различных моделей поведения, которые они получают из разных браузеров (например, Firefox vs Chrome). Я искал это в то время, когда наткнулся на эту нить, поэтому я подумал, что добавлю ее, если она может помочь кому-то еще.
на Python, если вы просто ищете браузер, который вы тестируете (например, firefox, chrome, ie и т. д..), тогда вы могли бы использовать.
. в если заявление. Это предполагает, что вы уже назначили водитель в веб-браузер, который вы тестируете (например, Firefox, Chrome, IE и т. д..). Однако, если вам поручено протестировать несколько версий одного и того же браузера, вам понадобится что-то большее драйвер.версия. Надеюсь, это кому-то поможет. Я искал это решение, когда нашел этот поток, поэтому я подумал, что добавлю его на случай, если кому-то еще нужно он.
Если вы используете Chrome, вы можете сделать следующее:
и если вы используете Firefox:
Selenium за 60 секунд
Представляю вам перевод моей статьи на Medium.com.
Selenium сегодня является стандартом де-факто для автоматизации выполнения тестов в браузерах. Все популярные браузеры поддерживаются из коробки, а архитектура хорошо известна. Существуют даже компании, предоставляющие Selenium за деньги. Но удобен ли обычный Selenium сервер для локальной отладки тестов?
Проблема
Как веб-разработчик или инженер по автоматизации тестирования вы можете столкнуться со следующими неудобствами при работе со стандартным Selenium сервером:
Приведенный выше список недостатков далеко не полный. Но давайте остановимся на этом и попробуем гораздо более удобный способ отладки Selenium-тестов локально.
Selenoid
В моей предыдущей статье (часть I, часть II) я коротко описал новые открытые инструменты для работы с Selenium: Ggr и Selenoid. Ggr в основном нужен для больших Selenium кластеров и не нужен для отладки тестов на вашей машине. Сегодня я более подробно расскажу о Selenoid — альтернативной реализации Selenium хаба, которая запускает браузеры в Docker контейнерах.
Но почему же запуск браузеров в контейнерах так удобен? И в чем разница между запуском браузеров из контейнеров, поставляемых разработчиками Selenium и Selenoid? — Основная идея Selenoid состоит в том, чтобы запускать новый контейнер для каждой Selenium сессии (т.е. запроса нового браузера) и останавливать их сразу же после закрытия сессии. Такой подход сразу же решает все проблемы связанные с залипанием состояния в кешах и использования одних настроек браузера в разных сессиях. В каждом контейнере находится конкретная версия браузера, правильная версия веб-драйвера или Selenium сервера, поддерживающая этот браузер и все зависимости наподобие шрифтов, графических библиотек и так далее. Более того, контейнеры обеспечивают достаточный уровень изоляции процессов браузеров. Это позволяет запускать неограниченное количество разлиных версий браузеров параллельно и забыть о проблемах с фокусом. Безусловно, эти же проблемы решаются и обычными Selenium контейнерами. Но для того, чтобы получить поведение, аналогичное Selenoid, в дополнение к Docker как правило требуется использовать сложные админские инструменты наподобие Ansible или Salt.
Установка
Немного порекламировав Selenoid, настало время показать как просто с ним работать. Для того, чтобы получить работающий Selenium нужно выполнить 3 коротких шага:
Установить Docker. Обычно это делается при помощи стандартного менеджера пакетов вашей операционной системы такого как APT, Yum или Homebrew. Подробности можно найти в документации Docker.
Создать каталог для хранения конфигурации Selenoid и сгенерировать конфигурационный файл:
Последняя команда также скачает образы Docker-контейнеров двух последних версий Firefox, Chrome и Opera и сгенерирует правильный файл конфигурации для Selenoid.
Все — прошло 60 секунд и Selenoid готов к работе. Не нужно устанавливать Java и скачивать Selenium руками. Просто запустите свои тесты, используя тот же самый URL, что и у обычного Selenium server:
Мордочка и сбор статистики
Selenoid может использоваться совместно с Ggr для настройки большого Selenium кластера, поэтому у него нет графического интерфейса наподобие Grid Console в обычном Selenium. Посмотреть потребление браузеров можно двумя способами:
I. Запустить дополнительный легковесный контейнер с Selenoid UI. Это делается командой:
Мордочка будет доступна в браузере по адресу http://localhost:8080/ :
II. Отправлять статистику Selenoid во внешнюю систему: Graphite, InfluxDB, ElasticSearch и так далее. Статистика Selenoid может быть получена по следующему URL:
Данные отправляются в виде JSON следующего формата:
Selenoid возвращает сколько контейнеров может быть запущено одновременно (total), сколько запущено в данный момент (used), сколько запросов ожидают в очереди (queued) и сколько контейнеров еще стартуют (pending). Элемент browsers содержит информацию о потреблении браузеров различными пользователями. Имя пользователя извлекается из Basic HTTP headers, если они выставлены или выставляется в unknown, если нет. Хотя вы можете разбирать показанный JSON вручную при помощи скрипта, мы рекомендуем использовать для этой цели Telegraf. Больше информации о том, как использовать Telegraf изложено в этом разделе нашей документации.
Готовые контейнеры с браузерами
Согласитесь, круто иметь инструмент, автоматически запускающий контейнеры с разными браузерами. Но еще круче иметь набор готовых контейнеров с разными версиями популярных браузеров. Мы проделали много работы и подготовили образы контейнеров с разными версиями Firefox, Chrome и Opera. Полный список можно посмотреть на selenoid@DockerHub.
Чтобы всегда иметь набор свежих версий браузеров нужно лишь время от времени выполнять команду:
Эта команда автоматически скачивает последние версии контейнеров и генерирует новую JSON-конфигурацию для Selenoid. Чтобы начать использовать новые браузеры отправьте Selenoid команду на перечитывание конфигурации (можно делать под нагрузкой):
Наши контейнеры также поддерживают возможность установки произвольно разрешения экрана (по-умолчанию 1920x1080x24 ). Чтобы выставить разрешение просто передайте capability screenResolution :
Заключение
В этой статье я рассказал как эффективно управлять различными браузерами при помощи Selenoid. Поверьте — работа с Selenium может быть комфортной. Если вам интересны вопросы построения эффективной инфраструктуры тестирования, вы можете взглянуть на другие открытые инструменты в нашей организации на Github или подпишитесь на наш Твиттер @aerokube.
В благодарность автору замечательной картинки, посмотрите как ее рисовали.
Как узнать версию selenium
Что пишут в блогах
В этом видео я показал как можно визуализировать покрытие автоматическими тестами для GraphQL api с помощью инструмента Reqover.
Cегодня хочу поговорить с вами на тему комьюнити для тестировщиков.
Как и в любой сфере, среди тестировщиков существует куча различных комьюнити. Раньше они организовывались в скайпе.
Забываю похвастаться статусом книги.
Классной вам команды, четких и логичных требований, огненных разработчиков, адекватных менеджеров и проектов с крутой архитектурой!
Уважаемые коллеги, сильные мидлы, уверенные автоматизаторы, вдохновленные стажеры и специалисты фуллстек!
Онлайн-тренинги
Конференции
Heisenbug 2021 Moscow
Большая техническая конференция для тестировщиков
5-7 октября 2021, онлайн
Что пишут в блогах (EN)
Разделы портала
Про инструменты
В мире автоматизации новичку ориентироваться довольно сложно. Приходится узнавать множество понятий, разбираться в особенностях существующих инструментов. Например, вот: Selenium, Selenide, Selenoid, Selendriod — что это, чем отличается? Да и можно ли их сравнивать?
Написал статью, чтобы помочь в этом разобраться. Кому интересно, добро пожаловать под кат!
Selenium
Selenium — это инструмент для автоматизированного управления браузерами.
В рамках проекта Selenium разрабатывается серия программных продуктов с открытым исходным кодом:
Selenium Server – это программа, которая позволяет управлять браузерами с помощью специальных драйверов. Она должна находиться на том же компьютере, что и браузер, с которым нам предстоит работать.
После установки Selenium Server к нему можно обращаться с другого компьютера для удаленного управления браузерами по специальному протоколу, который написан поверх HTTP.
Коротко — Selenium Server помогает управлять браузерами на определенной машине.
Более подробно можно почитать здесь: https://www.seleniumhq.org/
Selenium Grid устанавливается на одном компьютере и может работать удаленно с несколькими другим, на которых установлены Selenium Server.
Он создан для того, чтобы запускать тесты на большом количестве машин, обращаясь только к одной, на которой установлен Selenium Grid.
Для создания сессии (т.е. запуска браузера) мы всегда будем приходить на компьютер, где стоит Selenium Grid. Он уже сам решит, какая машина менее нагружена для этого и туда и перенаправит команду.
Все машины, с которыми работает Selenium Grid, могут работать под управлением разных операционных систем, на них могут быть установлены разные браузеры.
Коротко — Selenium Grid нужен для организации работы с несколькими машинами, где установлен Selenium Server.
Selenium IDE – это плагин к браузеру Firefox, с помощью которого можно записывать и воспроизводить действия пользователя.
Он не имеет особого отношения ни к Selenium Server, ни к Selenium Grid и позволяет работать только с локальным браузером.
Selenide
Selenide — это один из фреймворков для автоматизированного тестирования веб-приложений. С его помощью можно быстро и относительно просто писать код, который будет формировать и отправлять HTTP-команды на Selenium Server или Selenium Grid.
Он заточен под то, чтобы писать такие сценарии, которые будут проверять работу веб-приложения: поиск нужных элементов, проверка событий, взаимодействие с UI и так далее.
Несмотря на схожесть названия с линейкой программ Selenium, сам Selenide разрабатывают другие ребята.
Коротко — с Selenide проще писать код, который заточен именно под тестирование веб-приложения.
Более подробно можно почитать здесь: https://ru.selenide.org/
Selenoid
Selenoid — это программа, которая позволяет управлять браузерами и Android-эмуляторами с помощью специальных драйверов. Умеет запускать каждый из них изолированно в Docker-контейнере.
Selenoid представляет собой альтернативное решение Selenium Server, хотя суть та же — организация работы драйверов.
Основная идея Selenoid состоит в том, чтобы запускать новый контейнер для каждой сессии (запуска нового браузера или эмулятора) и останавливать его сразу же после закрытия сессии.
Selenoid позволяет поддерживать высокую нагрузку без дополнительных ресурсозатрат.
Selendroid
Selendroid — это фреймворк для автоматизированного тестирования мобильных приложений на базе Android.
Используется на ранних версиях Android — до 17 level api (android 4.2). Но не выше.
Коротко — это уже не очень актуальные фреймворк для работы с Android-приложениями.
Более подробно можно почитать здесь: http://selendroid.io
Итого
Инструментов много, каждый предназначен для своих задач. Постарался коротко и без воды рассказать про группу Selen-проектов. 🙂
Если такой формат будет интересен, далее сделаю обзор на инструменты для мобильной автоматизации.
Selenium под Windows: все с начала
Представляю вам перевод моей статьи на Medium.com.
Впервые выпущенная более 30 лет назад Microsoft Windows сегодня является неоспоримым лидером среди настольных операционных систем. Это просто нельзя игнорировать при разработке веб-приложений. В этой статье я хотел бы обсудить некоторые особенности использования Selenium под Windows и предложить простое и проверенное в боевых условиях решение, значительно упрощающее жизнь.
Чем Windows отличается от Linux
В своих предыдущих статьях (первая, вторая, третья) я описал подходы и инструменты с открытым кодом, позволяющие организовать масштабируемый кластер Selenium. Мы также поговорили о том, как при помощи тех же инструментов эффективно запускать тесты на машине разработчика. Во всех статьях в качестве операционной системы использовался Linux. Чем же Windows отличается от Linux с точки зрения Selenium?
Как видите многие современные подходы при работе с Selenium: использование X сервера без монитора и запуск браузеров в контейнерах не работают в Windows. Но можно ли достичь сходной с Linux производительности и обойти известные ограничения Windows? Да, и это проще, чем вы могли бы подумать! В следующих разделах я расскажу как это сделать.
Создаем порядок из хаоса
Мы будем двигаться к поставленной цели шаг за шагом. Для начала сделаем решение как можно проще. Как известно, обычная схема установки Selenium на Windows выглядит так:
Схема состоит из Selenium сервера, запущенного при помощи виртуальной машины Java (JRE), затем исполняемый файл IEDriverServer или EdgeDriver и, наконец, сам браузер — IE или Edge. В этой цепочке есть как минимум одно слабое звено — Selenium сервер и Java. Все потому, что Selenium здесь выступает в роли простого прокси-сервера, который запускает процесс драйвера на случайном порту и затем отправляет все запросы на этот порт. Проксирование сетевого трафика — простейшая задача в любом языке программирования, потому что основная работа выполняется сетевой подсистемой операционной системы. Именно поэтому установка Java (50 и более Мб) и скачивание Selenium server (20 и более Мб) для простого проксирования выглядит чересчур громоздким решением. Более того Selenium сервер плохо работает под нагрузкой:
Как заменить Selenium сервер на Selenoid
Selenoid — это легковесная замена Selenium сервера, написанная на языке Go. Selenoid поставляется в виде одного маленького (около 7 Мб) исполняемого файла и не имеет внешних зависимостей. Для начала использования нужно просто скачать и запустить этот файл. В моей предыдущей статье я кратко описал насколько удобным может быть Selenoid для запуска браузеров в Docker контейнерах — основного его назначения. Второй поддерживаемый режим — это запуск исполняемых файлов вместо контейнеров и проксирование сетевого трафика в них — также, как Selenium сервер делает это с IEDriverServer и EdgeDriver. Заменить Selenium сервер на Selenoid очень просто. Для примера, запустим Internet Explorer при помощи Selenoid:
Запускаем Selenoid вместо Selenium сервера (порт 4444 должен быть свободен) при помощи вот такого файла selenoid.bat :
Запускаем тесты на нескольких рабочих столах
Первый из них — это консольная утилита для ручного переключения между рабочими столами. Команда выглядит примерно так:
Теперь все проблемы с фокусом окон должны уйти.
Немного магии с Selenium capabilities
Простой заменой Selenium на Selenoid и IEDriverServer.exe на headless_ie_selenium.exe мы решили наиболее острые проблемы Selenium под Windows. Давайте сделаем из алмаза бриллиант, выставив несколько полезных capabilities в тестах.
По-умолчанию Internet Explorer использует системные настройки HTTP прокси. Это приводит к тому, что настройки прокси, выставленные в одной сессии «пролезают» и в другие сессии. Для того, чтобы исправить это, выставьте:
Ваше веб-приложение может использовать cookies для хранения важной информации. В Windows эти файлы хранятся отдельно для каждого пользователя и поведение по-умолчанию — переиспользовать выставленные куки между параллельными сессиями. Это может приводить к плавающим тестам. Чтобы избежать переиспользование cookie можно стартовать IE в анонимном режиме:
Также не забудьте выставить:
Заключение
В этой статье я коротко описал основные проблемы, с которыми вы можете столкнуться при запуске Selenium тестов под Windows и предложил простое решение. Я продолжаю утверждать — тесты в Selenium могут не доставлять боли. Нужно только правильно уметь его готовить.
Selenium для Python. Глава 1. Установка
Представляю перевод неофициальной документации Selenium для Python.
Перевод сделан с разрешения автора Baiju Muthukadan.
Оригинал можно найти здесь.
Предисловие от автора статьи
Selenium WebDriver – это программная библиотека для управления браузерами. WebDriver представляет собой драйверы для различных браузеров и клиентские библиотеки на разных языках программирования, предназначенные для управления этими драйверами.
По сути своей использование такого веб-драйвера сводится к созданию бота, выполняющего всю ручную работу с браузером автоматизированно.
Чаще всего Selenium WebDriver используется для тестирования функционала веб-сайтов/веб-ориентированных приложений. Автоматизированное тестирование удобно, потому что позволяет многократно запускать повторяющиеся тесты. Регрессионное тестирование, то есть, проверка, что старый код не перестал работать правильно после внесения новых изменений, является типичным примером, когда необходима автоматизация. WebDriver предоставляет все необходимые методы, обеспечивает высокую скорость теста и гарантирует корректность проверки (поскольку человеский фактор исключен). В официальной документации Selenium приводятся следующие плюсы автоматизированного тестирования веб-приложений:
Также одной из незаменимых особенностей Selenium WebDriver является ожидание загрузки страницы. Сюда можно отнести случаи, когда парсинг данных на странице невозможен из-за страниц перенаправления или ожидания, содержащих примерно такой текст: «Подождите, страница загружается». Такие страницы, само собой разумеется, не является целью парсинга, однако обойти их часто не представляется возможным. Естественно, без Selenium WebDriver. Selenium WebDriver позволяет в таких случаях «ожидать», как ожидал бы человек, пока на странице, к примеру, не появится элемент с необходимым именем.
Еще один плюс Selenium заключен в том, что действия веб-драйвера видимы визуально и требуют минимального времени нахождения на странице, это позволяет с удобством демонстрировать функционал сайта, когда необходима презентация сервиса.
Некоторые проблемы WebDriver (из сети и личного опыта):
Содержание:
1. Установка
1.1. Введение
Привязка Selenium к Python предоставляет собой простой API [Интерфейс программирования приложений (англ. Application Programming Interface) — Прим. пер.] для написания тестов функциональности/тестов соответствия требованиям с использованием веб-драйвера Selenium WebDriver. С помощью Selenium Python API вы можете интуитивно просто получить доступ ко всему функционалу Selenium WebDriver.
Привязка Python-Selenium предоставляет удобный API для доступа к таким веб-драйверам Selenium как Firefox, Ie, Chrome, Remote и других. На данный момент поддерживаются версии Python 2.7, 3.2, 3.3 и 3.4.
В данной документации рассмотрен Selenium 2 WebDriver API. Selenium 1 / Selenium RC API в ней не охвачены.
1.2. Загрузка Selenium для Python
Для создания изолированной среды Python вы можете использовать virtualenv. Также библиотека Python 3.4 содержит модуль pyvenv, который практически аналогичен virtualenv.
1.3. Подробная инструкция для пользователей Windows
Примечание
Для данной инсталляции вам необходим доступ к сети Интернет.
1.4. Загрузка Selenium server
Примечание
Selenium server необходим в случаях, когда вы хотите использовать remote WebDriver [удаленный — Прим. пер.]. За дополнительной информацией обращайтесь к разделу Использование Selenium с remote WebDriver. Если вы только начинаете изучать Selenium, вы можете пропустить этот раздел и продолжить изучение со следующей главы.
Selenium server написан на языке Java. Для его запуска рекомендована среда Java Runtime Environment (JRE) версии 1.6 или выше.
Вы можете скачать Selenium server 2.x на странице загрузок сайта selenium. Имя файла должно выглядеть примерно таким образом: selenium-server-standalone-2.x.x.jar. Вы всегда можете загрузить последнюю версию Selenium server 2.x.
Если Java Runtime Environment (JRE) не установлена в вашей системе, вы можете скачать JRE с сайта Oracle. Если вы используете системы GNU/Linux и имеете права root [права администратора — Прим. пер.], вы так же можете установить JRE, используя инструкции вашей системы.
Если команда java доступна в PATH (переменная окружения), вы можете запустить Selenium server используя следующую команду:
Замените 2.x.x актуальной версией Selenium server, скачанной вами с сайта.
Если JRE установлена под пользователем, не обладающим правами root и/или если она недоступна в переменной окружения PATH, вы можете ввести относительный или полный путь до файла java. Аналогично, вы можете дополнить имя jar-файла Selenium server до относительного или полного пути. После этого команда будет выглядеть так: