Selenide не закрывает браузер

Обновлено: 06.07.2024

Есть ли способ оставить окно браузера открытым даже после завершения выполнения теста? Я пытаюсь выполнить поиск различных строк в файле журнала, и если соответствующие результаты будут найдены, я хотел бы оставить браузер открытым, чтобы результаты можно было просмотреть позже.

Но окно браузера закрывается примерно через 5 минут после выполнения теста. Есть ли какой-либо вариант, с помощью которого я могу продлить этот период времени?

Сатья Гоял

Вайбхав Мишра

Я думал о том, чтобы положить сон, но есть ли более чистый способ добиться этого. вставить сон всегда можно

Кришнан Махадеван

Почему следующее не работает вместо того, чтобы оставить браузер открытым и создать нестабильную среду автоматизации?

Разве это не было бы намного более чистым решением, чем оставлять браузер открытым и вызывать ручное вмешательство, необходимое для автоматизации?

Также помните, что браузер контролируется внутренним тайм-аутом на уровне WebDriver, что означает, что через какое-то время WebDriver, вероятно, все равно очистит экземпляр вашего браузера. Я не помню точную настройку, но думаю, что она есть.

--
С благодарностью и уважением
Кришнан Махадеван

Вайбхав Мишра

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

Результаты (множество исключений) поиска в конечном итоге будут оцениваться вручную, так что это не проблема.

В субботу, 22 июня 2013 г., 13:39:37 UTC+5:30, Кришнан написал:

Почему следующее не работает вместо того, чтобы оставить браузер открытым и создать нестабильную среду автоматизации?

Разве это не было бы намного более чистым решением, чем оставлять браузер открытым и вызывать ручное вмешательство, необходимое для автоматизации?

Также помните, что браузер контролируется внутренним тайм-аутом на уровне WebDriver, что означает, что через какое-то время WebDriver, вероятно, все равно очистит экземпляр вашего браузера. Я не помню точную настройку, но думаю, что она есть.

В субботу, 22 июня 2013 г., Вайбхав Мишра написал:

Я думал о том, чтобы положить сон, но есть ли более чистый способ добиться этого. вставить сон всегда можно

В пятницу, 21 июня 2013 г., 22:38:17 UTC+5:30, Вайбхав Мишра написал: Всем привет!

Есть ли способ оставить окно браузера открытым даже после завершения выполнения теста? Я пытаюсь выполнить поиск различных строк в файле журнала, и если соответствующие результаты будут найдены, я хотел бы оставить браузер открытым, чтобы результаты можно было просмотреть позже.

Но окно браузера закрывается примерно через 5 минут после выполнения теста. Есть ли какой-либо вариант, с помощью которого я могу продлить этот период времени?

--
Вы получили это сообщение, так как подписаны на группу Google Groups "Selenium Users".

Вайбхав Мишра

Я даже пытался использовать thread.sleep в течение 3600 секунд, но браузер FF закрывался через 5 минут. я удалил код, в котором использую driver.quit, но браузер все равно закрывается.

Кришнан Махадеван

С уважением и уважением
Кришнан Махадеван

Арран

Не имеет смысла. Либо автоматизировать, либо нет. Не ищите посередине. Это увеличивает боль, с которой вам приходится иметь дело.

Вайбхав Мишра

Хорошо. Я понимаю, что вы, ребята, говорите, но я попытаюсь перефразировать сценарий. чтобы вы поняли мою дилемму.

Мне предоставили список исключений, и мне нужно найти в журналах возникновение этих исключений. Список исключений может время от времени меняться.

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

Поэтому необходимо держать браузер открытым даже после завершения тестов в течение как минимум 30 минут или около того.

Имеет ли это смысл?? Я надеюсь, что вы, ребята, увидите некоторую логику в моем требовании (я не могу использовать снимок экрана, так как результаты некоторых поисков занимают несколько страниц)

Густаво Годой

Позвольте мне понять..
Ваш браузер отправляет вам некоторый журнал (в html-представлении браузера), и когда вы находите что-то, что вы считаете релевантным, вы должны открыть браузер, чтобы кто-нибудь увидел это релевантным Информация. Если нет, вы можете закрыть.

Это нормально? Если ваш поиск на странице успешен, вы должны показать другим людям, и он должен искать страницу, чтобы? Или ваш поиск в журнале относится к тому, что после взаимодействия с веб-страницей вы ищете файл журнала в файловой системе, и когда вы находите, вам нужно оставить веб-страницу открытой для проверки вручную?

Густаво Годой

Если вам нужно просто держать браузер открытым, не прекращайте удаленный вызов (driver.quit()) и добавьте определенное время ожидания при запуске сервера (этот пример предназначен для удаленного доступа)

В пятницу, 21 июня 2013 г., 14:08:17 UTC-3, Вайбхав Мишра написал:

Вайбхав Мишра

Большое спасибо, что указали мне правильное направление. К счастью, я использую только RemoteWebDriver и немного поигрался с переключателем тайм-аута, как упоминалось в статье, которую вы упомянули. я смог установить его на 0. Теперь окно браузера не закрывается, и я могу добиться того, чего хотел.

Густаво Годой

В пятницу, 21 июня 2013 г., 14:08:17 UTC-3, Вайбхав Мишра написал:

шиван и хаваннавар

Здравствуйте, Вайбхав.
Попробуйте использовать неявное ожидание. если вы можете сделать это в удаленном драйвере.

Сандип Мишра

Миан Шази

Рича Сатам

Удалить driver.close(); или driver.quit(); команду из селенового
скрипта, чтобы браузер оставался открытым даже после завершения теста,
driver.close(); -command используется для закрытия текущего экземпляра браузера.
driver.quit(); команда используется для закрытия всех открытых экземпляров браузера.


В среду, 23 января 2019 г., в 9:29 Миан Шази написал:
>
> Ссылка, размещенная Густаво, больше не работает. Не могли бы вы упомянуть решение здесь
>

Selenide поддерживает только веб-приложения, открывать браузер для любой операции необходимо. Мы не можем получить доступ к уже открытому браузеру в селениде.

Открыть браузер в селениде настолько просто, что нам даже не нужно создавать какой-либо объект. Что нам нужно сделать, так это просто вызвать метод open() и передать URL-адрес.

Мы должны быть осторожны с оператором импорта, ваша среда IDE может не поддерживать автоматический импорт, Firefox является браузером по умолчанию

Открыть браузер Chrome в Selenide

По умолчанию Selenide открывает Firefox, чтобы открыть любой другой браузер, мы должны явно указать путь исполняемого файла драйвера к свойству System.

И установите для selenide.browser значение chrome, после установки исполняемого файла и имени браузера вызовите метод open() с параметром.

Открыть Internet Explorer в Selenide

Мы можем открыть браузер IE с помощью селенида, чтобы открыть браузер IE, мы должны установить IEdriverserver.exe и имя браузера на Internet Explorer

Закрыть браузер в Selenide

Нам не нужно закрывать браузер, так как селенид позаботится о закрытии браузера после выполнения теста. Но если вы хотите закрыть перед выполнением, вы можете использовать метод close()

Работа в офлайн-режиме в Selenide

Иногда у нас может не быть интернета, но мы можем быть на этапе практики, в таких сценариях мы можем использовать селенид для работы с автономным веб-приложением.

Примечание. Если на сайте нет протокола, просто скопируйте и вставьте URL-адрес в eclipse, он автоматически импортирует протокол.

Получить заголовок в Selenide

Мы можем получить заголовок веб-страницы, используя метод title() в селениде, на изображении ниже показано, где заголовок страницы присутствует в исходном коде

Получить URL страницы в Selenide

Мы можем получить URL-адрес страницы с помощью метода url().

Получить исходный код страницы в Selenide

Мы можем получить исходный код страницы с помощью метода source().

Команды навигации в селениде

Команды навигации позволяют пользователю перемещаться по истории, например назад, вперед, обновление.

Ниже приведены несколько команд:
1. обновить()
2. назад()
3. вперед()

<р>1. refresh() : метод refresh() обновляет текущую страницу

<р>2. back() : метод back помогает пользователю вернуться назад.

В приведенной выше программе вы можете не столкнуться с какой-либо ошибкой, но она также не будет никуда перемещаться, почему? потому что back() косвенно вызывает собственный метод back(), присутствующий в браузере, поэтому он работает только при переходе более чем на одну страницу. Тогда будет включена только кнопка в браузере, если она не включена, метод back() никогда не работает.< /p>

Измените приведенную выше программу, как показано ниже

Важное примечание. Обратите внимание, что когда мы использовали метод open() во второй раз, селенид не открывает новый браузер, а просто переходит по новому URL-адресу.

<р>3. Forward() : метод forward() перемещает пользователя вперед, но если мы хотим, чтобы метод forward() работал, мы должны использовать back() перед использованием forward(), тогда будет включена только кнопка вперед в браузере

Вы также можете поделиться знаниями, добавив тему здесь


сообщить об этом объявлении

Ваше руководство по запуску тестов Selenium Webdriver с помощью Selenide в BrowserStack.

Введение

BrowserStack обеспечивает мгновенный доступ к нашей сети Selenium Grid, состоящей из более чем 3000 реальных устройств и настольных браузеров. Запускать тесты Selenium с помощью Selenide на BrowserStack очень просто. Это руководство поможет вам:

Предпосылки

  • Вам необходимо иметь имя пользователя BrowserStack и ключ доступа, которые вы можете найти в настройках своей учетной записи.Если вы еще не создали учетную запись, вы можете подписаться на бесплатную пробную версию или приобрести тарифный план.
  • Maven должен быть установлен и указан в $PATH . Последнюю версию Maven можно загрузить с веб-сайта.
  • Прежде чем вы сможете запускать тесты Selenium с помощью Selenide, убедитесь, что у вас установлены библиотеки Selenide. Убедитесь, что он включен в файл pom.xml, как показано ниже (он уже включен в репозиторий примеров):

Выполнение первого теста

  • Редактируйте или добавляйте возможности в формате W3C с помощью нашего генератора возможностей W3C.
  • Добавьте возможность seleniumVersion в тестовый скрипт и установите значение 4.0.0 .

Чтобы запустить тесты Selenium с помощью Selenide в BrowserSatck Automate, выполните следующие действия:

    Клонируйте репозиторий selenide-browserstack на GitHub с образцом теста BrowserStack, используя следующую команду:

Совет: вы можете использовать наш конструктор возможностей и выбирать из широкого спектра настраиваемых возможностей, поддерживаемых BrowserStack.

Подробности вашего первого теста

Ниже приведен пример тестового примера Selenide, который вы запускали выше. Тест ищет «BrowserStack» в Google и проверяет, является ли заголовок полученной страницы «BrowserStack — Google Search». Вы можете найти приведенный ниже скрипт в репозитории примеров Selenide BrowserStack

Интеграция тестов с BrowserStack

Ваш тестовый пример Selenide был интегрирован для запуска в BrowserStack с помощью приведенного ниже фрагмента кода. Был определен класс, который содержит методы для настройки и создания соединения с BrowserStack. Скрипт можно найти в репозитории образцов Selenide BrowserStack.

Отметка тестов как пройденных или не пройденных

BrowserStack предоставляет комплексный REST API для доступа и обновления информации о ваших тестах. Ниже показан пример фрагмента кода, который позволяет вам помечать ваши тесты как пройденные или не пройденные на основе утверждений в ваших тестовых примерах Selenide.

Отладка вашего приложения

BrowserStack предоставляет ряд инструментов отладки, которые помогут вам быстро выявлять и исправлять ошибки, обнаруженные с помощью автоматических тестов.

Текстовые журналы

Текстовые журналы — это полная запись вашего теста. Они используются для идентификации всех шагов, выполненных в тесте, и устранения ошибок для неудачного шага. Текстовые журналы доступны на панели инструментов Automate или через наш REST API.

Визуальные журналы

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

Визуальные журналы отключены по умолчанию. Чтобы включить визуальные журналы, вам нужно установить для свойства browserstack.debug значение true .

BrowserStack Automate Визуальные журналы

Примеры визуальных журналов из Automate Dashboard:

Запись видео

Каждый запуск теста в сетке BrowserStack Selenium записывается точно так же, как он выполняется на нашем удаленном компьютере. Эта функция особенно полезна, когда тест браузера дает сбой. Вы можете получить доступ к видео из Automate Dashboard для каждого сеанса. Вы также можете загрузить видео с панели инструментов или получить ссылку для загрузки видео с помощью нашего REST API.

Примечание. Запись видео немного увеличивает время выполнения теста. Вы можете отключить эту функцию, установив для свойства browserstack.video значение false .

Чтобы отключить запись видео, добавьте следующий фрагмент кода:

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

Дальнейшие шаги

После успешного запуска первого теста в BrowserStack вы можете выполнить одно из следующих действий:

Помогла ли вам эта страница?

Нам жаль это слышать. Поделитесь своим мнением, чтобы мы могли работать лучше

Свяжитесь с нашей службой поддержки для немедленной помощи, пока мы работаем над улучшением нашей документации.

Мы постоянно совершенствуем наши документы. Мы будем рады узнать, что вам понравилось

  • На этой странице есть именно то, что я ищу
  • Это содержание и образцы кода являются точными и актуальными
  • Содержимое этой страницы легко понять
  • Другое (укажите подробнее ниже)

Спасибо за ценный отзыв

Помогает ли вам эта страница?

Нам жаль это слышать. Поделитесь своим мнением, чтобы мы могли работать лучше

Свяжитесь с нашей службой поддержки для немедленной помощи, пока мы работаем над улучшением нашей документации.

Мы постоянно совершенствуем наши документы. Мы будем рады узнать, что вам понравилось

  • На этой странице есть именно то, что я ищу
  • Это содержание и образцы кода являются точными и актуальными
  • Содержимое этой страницы легко понять
  • Другое (укажите подробнее ниже)

Спасибо за ценный отзыв!

Журнал разработки программного обеспечения – управление проектами, программирование, тестирование программного обеспечения

Здесь указано название вашей компании. Получите 30 000 посетителей в месяц и 35 000 специалистов по разработке программного обеспечения за 145 долларов США.

Selenide — краткие тесты пользовательского интерфейса на Java

Selenide — это инструмент для тестирования программного обеспечения с открытым исходным кодом, предназначенный для написания кратких, выразительных и стабильных тестов пользовательского интерфейса на языке Java. Selenide решает все типичные проблемы с тестированием современных веб-приложений, таких как Ajax и тайм-ауты, простым и элегантным способом. Начать работать с Selenide очень просто: вам не нужно читать туториалы на сотни страниц. Просто откройте IDE и начните писать. Кривая обучения близка к нулю. С Selenide вы не тратите время на гугление «как заставить Selenium сделать это» — вы можете сосредоточиться на бизнес-логике.

Selenide = лучший Selenium

Введение в Selenide

В идеале мы должны написать несколько типов тестов для наших приложений: модульные тесты, функциональные тесты, интеграционные тесты и т. д. Для веб-приложений мы обычно пишем сценарии, которые открывают приложение в веб-браузере (в реальном или автономном режиме) и начинают нажимать кнопки. . Мы называем их тестами пользовательского интерфейса (UI).

Сегодня наиболее распространенным инструментом для тестирования пользовательского интерфейса в Java является Selenium WebDriver. Хотя это отличный инструмент, его все еще можно улучшить. Нам не хватало выразительности и стабильности в наших тестах, а также мы устали от таймаутов и отсутствия поддержки Ajax. Вот почему мы создали Selenide — специальную библиотеку для UI-тестов поверх Selenium.

Чтобы почувствовать вкус Selenide, взгляните на Google Test:

Разве это не лаконично?

Селенид API

Некачественное программное обеспечение не имеет документации.

Великолепное программное обеспечение не нуждается в документации.

Мы с гордостью заявляем, что Selenide настолько прост, что вам не нужно читать тонны документации.
Вся работа с Selenide состоит из трех простых вещей!

Использовать Selenide очень просто: $(selector).do()

Используйте возможности IDE

Selenide разработан таким образом, чтобы его можно было легко использовать в любой IDE без необходимости чтения документации. Вы просто пишете $("селектор"). - и IDE предложит все возможные варианты, как только вы нажмете точку.

Вы даже можете начать вводить какое-то слово, скажем, "ente" - и среда IDE предложит все возможные методы, содержащие "ente" - в данном случае "нажмите Enter".

Ajax и тайм-ауты

Самая досадная проблема тестов пользовательского интерфейса – тайм-ауты. Тестировщики живут в мире без Ajax в своих мечтах. Тест, который вы написали сегодня, может сработать и завтра, и на следующей неделе, и даже в следующем месяце, но иногда он будет давать сбой, просто потому, что у CI-сервера плохое настроение. Некоторые Ajax-запросы занимали немного больше времени, чем раньше; некоторый JavaScript оказался немного медленнее; другой процесс был запущен одновременно с вашими тестами и занят процессором сервера - и бум, ваш тест красный! Мы потратили много часов, если не месяцев, копаясь в этих проблемах.

Обычным решением является использование в тесте методов "sleep" или "wait_until". Хотя обычно это помогает, но во сне мы не живем в «сонном мире»! В идеале мы должны сосредоточиться на бизнес-логике при написании тестов, не беспокоясь о жизненном цикле WebDriver, тайм-аутах, спящем режиме, ожидании и т. д.

С Selenide вы можете сосредоточиться на бизнес-логике. Забудьте об Аяксе!

Как это работает?

Возможно, вас удивит простота решения, которое Selenide предлагает для решения проблем с синхронизацией. Больше никаких снов и ожиданий! Каждый метод должен просто ждать несколько секунд, если это необходимо.

Selenide проверяет, содержит ли элемент «Hello». Если еще нет, то Selenide предполагает, что, вероятно, скоро элемент будет динамически обновляться, и немного ждет, пока это произойдет. Время ожидания по умолчанию составляет 4 секунды, чего обычно достаточно для большинства веб-приложений. И, конечно же, его можно настроить.

В приведенном выше примере вы можете видеть, что с помощью Selenide вы можете проверить, что элемент НЕ соответствует критериям: элемент не проверен, элемент не содержит слова «ошибка», элемент исчез. Это займет несколько строк кода, включая try/catch с чистым Selenium. В Selenide это можно сделать всего одной строчкой кода.

Скриншоты

Снимки экрана могут помочь в случае возникновения проблем с тестами пользовательского интерфейса. Их также можно использовать в отчетах, документации, демонстрациях и т. д.

Selenide позволяет делать скриншоты после каждого неудачного теста и после успешных тестов, если хотите. Вы можете сделать это с помощью всего одной строки кода:

Работа с коллекциями

Иногда полезно проверить весь список элементов, например, строки таблицы.Selenide позволяет сделать это одной строкой кода с помощью метода $$:

Метод $$ возвращает набор элементов, которые можно проверить по некоторым критериям.

Объекты страницы

Инженеры по контролю качества любят объекты страницы. Каждый раз, когда я говорю о Selenide, первый вопрос: "Поддерживает ли Selenide Page Objects?"

Короткий ответ: да, Selenide поддерживает объекты страницы.

Длинный ответ таков: объект страницы не требует особой поддержки. Инженеры по тестированию привыкли, что их объекты страницы должны расширять какой-то суперкласс, использовать аннотации @FindBy, передавать экземпляр WebDriver в конструктор, использовать PageFactory для инициализации элементов и т. д.

Все это нужно только из-за отсутствия лаконичного API. С Selenide у вас есть лаконичный API, поэтому вам не нужно делать ничего особенного для использования объектов страницы. Никаких аннотаций, никаких фабрик страниц, никаких суперклассов. Просто инкапсулируйте логику элементов и страниц в отдельные методы и классы, как в любом другом виде программирования.

Это объект страницы для GoogleTest, представленный в начале этой статьи. Как видите, ему не нужны ни аннотации, ни конструктор, ни PageFactory, ни экземпляр WebDriver. Это просто класс, инкапсулирующий логику работы с элементами страницы. Именно так разработчики должны создавать объекты предметной области, а тестировщики должны создавать объекты страницы.

Кстати, вот как мог бы выглядеть тест с использованием объекта GooglePage:

Настройка

Есть мнение, что основной недостаток многих инструментов (таких как Maven) — невозможность настроить поведение. Вы можете написать свои собственные плагины для Maven, но вы не можете изменить порядок фаз жизненного цикла в своей сборке.

Вдохновленные статьей Мартина Фаулера "Внутренняя перепрограммируемость", мы разработали Selenide таким образом, чтобы каждую маленькую часть его логики можно было легко настроить. В Selenide нет приватных методов, вы можете дополнить или переопределить любой метод.

Например, если вам не нравится, как Selenide делает скриншоты, вы можете переопределить эту логику, предоставив собственную версию ScreenShotLaboratory:

Селенид на Скала

Как Java-библиотека, Selenide может использоваться на любом языке JVM.

Вот так выглядит ScalaTest+Selenide:

Селенид в Groovy


Инструменты, похожие на Selenide

Selenium WebDriver — это инструмент управления браузером, а не инструмент тестирования. По этой причине на основе Selenium было создано несколько инструментов, таких как Thucydides, Yandex HtmlElements, fluent-selenium, FluentLenium, Watir-webdriver и многие другие. Селенид — один из них.

Меня часто спрашивают о конкурентах Selenide. Мы не конкуренты. Мы все несем одну и ту же миссию. Если вы пишете эффективные автоматизированные тесты для своего приложения, я уже доволен, какой бы инструмент вы для этого не использовали. Мы создали Selenide для тех, кто ценит простоту, лаконичность, выразительность и чистый код.

Вы кодируете это — вы тестируете это

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

Почему разработчики должны писать автоматизированные тесты.

Мы действительно считаем, что разработчики программного обеспечения должны сами писать автоматизированные тесты. Это заставляет их чувствовать ответственность за код. И это позволяет им безопасно изменять кодовую базу, что немедленно приводит к более высокому качеству кода.

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

Тестировщики просто не могут этого сделать, так как относятся к системе как к черному ящику. Вот почему разработчики должны помочь им, написав (хотя бы некоторые) автоматические тесты самостоятельно. В этом случае разработчики создают тестируемую архитектуру.

Читайте также: