Selenium свернуть окно браузера
В этом руководстве вы узнаете, как увеличить, уменьшить или изменить размер браузера с помощью Selen Webdriver. Объясняется в различных сценариях с использованием метода maximize () и измерений для изменения размера браузера.
Вот что мы рассмотрим:
Зачем максимизировать браузер в Selenium Automation?
Элементы в веб-приложении могут не распознаваться селеном, если браузер не развернут и из-за этого происходит сбой фреймворка. Следовательно, максимизировать браузер является очень важной частью Selen Framework. Рекомендуется максимально использовать браузер при автоматизации любого веб-приложения. Когда пользователь выполняет среду селена или любой сценарий, браузер может не находиться в полноэкранном режиме, и вам необходимо развернуть браузер, чтобы просмотреть все элементы веб-приложения. Рекомендуется развернуть браузер в начале скрипта, чтобы скрипт успешно выполнялся без каких-либо ошибок.
Как развернуть браузер в Selenium
Чтобы максимизировать окно браузера, вам нужно вызвать метод maximize () интерфейса Window класса драйвера.
Вы можете настроить размер браузера в соответствии с требованиями сценария. Selenium Webdriver не предоставляет какого-либо метода минимизации браузера, такого прямого метода не существует. Вы должны использовать метод изменения размера, чтобы свернуть браузер.
Пример: изменение размера браузера с помощью веб-драйвера selenium
а) Селеновый сценарий с пояснениями.
Описание скрипта : В приведенном ниже скрипте Selenium показано изменение размера браузера с использованием инфраструктуры testNG, шаги сценария:
- Откройте браузер Chrome.
- Запустите сайт.
- Подождите несколько секунд, чтобы просмотреть действие изменения размера.
- Закройте браузер.
б) выходной анализ
Открыл браузер Chrome, изменил размеры браузера, подождал несколько секунд и закрыл браузер.
Пример: развернуть окно браузера с помощью веб-драйвера.
а) Селеновый сценарий с пояснениями.
Описание сценария: В приведенном ниже сценарии Selenium показано максимальное развертывание браузера с использованием инфраструктуры testNG, шаги сценария:
- Откройте браузер Chrome.
- Запустите сайт.
- Подождите несколько секунд, чтобы просмотреть максимально развернутое действие.
- Закройте браузер.
б) выходной анализ
Открыл браузер chrome, развернул браузер, подождал несколько секунд и закрыл браузер.
Пример: сверните окно браузера с помощью веб-драйвера.
а) Селеновый сценарий с пояснениями.
Описание скрипта : В приведенном ниже скрипте Selenium показано, как минимизировать браузер с использованием инфраструктуры testNG, шаги сценария:
- Откройте браузер Chrome.
- Запустите сайт.
- Подождите несколько секунд, чтобы просмотреть действие минимизации.
- Закройте браузер.
Примечание. Если пользователь хочет использовать браузер Firefox, ему необходимо установить свойство FirefoxDriver и создать объект FirefoxDriver вместо ChromeDriver во всех трех сценариях сценариев, описанных ниже:
б) выходной анализ
Открыл браузер chrome, свернул браузер, подождал несколько секунд и закрыл браузер.
Когда я выполняю несколько тестов одновременно, я не хочу оставлять окно браузера Firefox видимым. Я могу свернуть его, используя selenium.minimizeWindow() , но я не хочу этого делать.
Есть ли способ скрыть окно Firefox? Я использую FireFox WebDriver.
Я использовал xvfb для решения этой проблемы.
Сначала установите Xvfb:
В Debian / Ubuntu; или
На Fedora / RedHat. Затем выберите номер дисплея, который вряд ли когда-либо будет конфликтовать (даже если вы добавите реальный дисплей позже) - что-то высокое, например, 99, должно подойти. Запустите Xvfb на этом экране с отключенным контролем доступа:
Теперь вам нужно убедиться, что ваш дисплей установлен на 99, прежде чем запускать сервер Selenium (который сам запускает браузер). Самый простой способ сделать это - экспортировать DISPLAY =: 99 в среду для Selenium. Во-первых, убедитесь, что все работает из командной строки следующим образом:
В настройках (Firefox, Chrome)
Установите логическое значение без заголовка в true, вызвав метод set_headless.
Если вы используете KDE Desktop, вы можете сделать так, чтобы Firefox Windows изначально открывался, будучи свернутым. Это сделало мой день для меня в отношении этой проблемы. Просто сделайте следующее:
- Откройте Firefox
- Нажмите на значок Firefox в верхнем левом углу строки меню -> Дополнительно -> Специальные настройки приложения .
- Перейдите на вкладку «Размер и положение».
- Нажмите «Свернуто» и выберите «Применить изначально» (ДА).
Эти настройки теперь будут применяться для новых окон Firefox, и вы больше не будете беспокоиться о всплывающих окнах при запуске тестов с Webdriver.
Если вы используете Selenium RC или Remote WebDriver, вы можете запустить экземпляр браузера на удаленной или виртуальной машине. Это означает, что вам не нужно беспокоиться о сокрытии окон браузера, поскольку они не будут запускаться на вашем локальном компьютере.
Python
Самый простой способ скрыть браузер - установить PhantomJS. Затем измените эту строку:
Остальной код не нужно будет менять, и браузер не откроется. В целях отладки используйте driver.save_screenshot('screen.jpg') на разных этапах вашего кода или просто переключитесь на веб-драйвер Firefox снова.
В Windows вам нужно будет указать путь к phantomjs.exe:
У меня была похожая проблема с ChromeDriver (мне нужно было свернуть окно браузера во время выполнения тестов). Я не мог найти лучшего способа сделать это, поэтому я использовал комбинацию клавиш Alt + Space, N, чтобы сделать это. Это должно работать только в Windows, в примере используется класс Java AWT Robot для воспроизведения сочетаний клавиш:
Я обнаружил, что самым простым способом было использовать PhantomJS, по предложению Стефана. Я скачал бинарный файл и поместил фантомы в мой PATH, в моем случае (Mac OS) в / usr / bin /. Мне нравится сохранять возможность видеть, что происходит, поэтому я обернул это так (в Python):
Браузером PhantomJS по умолчанию является IE, хотя многие функции браузера там не работают. Если вы хотите открыть безголовое (скрытое) окно Firefox, вы можете использовать новую функцию Firefox 56+.
С помощью этой функции вы можете получить драйвер headless , например так:
Новые версии Chrome также имеют опцию headless .
В Java вы можете использовать HtmlUnitDriver для запуска сеанса браузера без заголовка, который фактически не открывает браузер.
Добавьте следующую зависимость в ваш pom.xml (или загрузите и сослайтесь на следующее):
. и протестируйте его так же, как и экземпляр драйвера WebDriver:
Просто добавьте их, и это будет работать, если вы используете Chrome, также полезно в Firefox
Firefox имеет режим без головы. Если вы хотите использовать его, вам просто нужно установить его на бинарные опции, например:
После максимизация окно driver.manage().window().maximize(); , как мне свести к минимуму окно браузера в Selenium WebDriver с Java?
- 1 Возможный дубликат Как я могу запустить свернутый браузер Selenium (например, Firefox)?
Кажется, теперь есть функция минимизации:
Из документации по:
Итак, код должен быть:
По крайней мере, в JavaScript.
К сожалению, в Selenium нет встроенной функции сворачивания окна браузера. Есть только функция разворачивания окна. Но для этого есть обходной путь.
Java-клиент Selenium не имеет встроенного метода для свести к минимуму в контекст просмотра.
Однако, поскольку по умолчанию / общепринятой практикой является открытие браузера в максимизированный режим, в то время как Выполнение теста является в ходе выполнения сведение к минимуму браузер будет противоречить лучшим практикам, поскольку Selenium может потерять фокус контекст просмотра и исключение может возникнуть во время выполнение теста. Однако, Селена У клиента Python есть метод minim_window (), который в конечном итоге подталкивает Контекст просмотра Chrome эффективно к фону.
Образец кода
При этом нет возможности свернуть окно браузера. Это может быть из соображений безопасности. Вы можете развернуть окно, как вы упомянули в вопросе.
Но вы можете установить положение окна с помощью следующего кода:
В Java это может выглядеть примерно так: не уверен в синтаксисе:
Обращайтесь к этому и этому.
С помощью этого входа вы можете установить x а также y относительно значений разрешения вашей операционной системы, это должно скрывать браузер.
- Метод setPosition (Point) в типе WebDriver.Window не применим для аргументов (Point)
- Спасибо за ваше предложение. Я использовал выше, но до сих пор не сворачиваю окно браузера. И не показывает никаких ошибок.
- import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; открытый класс MaximiseWindow
- Спасибо за предложение, он может быть не виден, но при запуске тестов он может постоянно фокусироваться, как мы можем этого избежать?
Используйте следующий код, чтобы свернуть окно браузера. У меня это сработало, и я использую Selenium 3.5:
Я использую Selenium WebDriver (Java) 3.4.0 и также не нашел функции минимизации. Затем я использую следующий код.
WebDriver does not make the distinction between windows and tabs. If your site opens a new tab or window, Selenium will let you work with it using a window handle. Each window has a unique identifier which remains persistent in a single session. You can get the window handle of the current window by using:
Switching windows or tabs
Clicking a link which opens in a new window will focus the new window or tab on screen, but WebDriver will not know which window the Operating System considers active. To work with the new window you will need to switch to it. If you have only two tabs or windows open, and you know which window you start with, by the process of elimination you can loop over both windows or tabs that WebDriver can see, and switch to the one which is not the original.
However, Selenium 4 provides a new api NewWindow which creates a new tab (or) new window and automatically switches to it.
Create new window (or) new tab and switch
Creates a new window (or) tab and will focus the new window or tab on screen. You don’t need to switch to work with the new window (or) tab. If you have more than two windows (or) tabs opened other than the new window, you can loop over both windows or tabs that WebDriver can see, and switch to the one which is not the original.
Note: This feature works with Selenium 4 and later versions.
Closing a window or tab
When you are finished with a window or tab and it is not the last window or tab open in your browser, you should close it and switch back to the window you were using previously. Assuming you followed the code sample in the previous section you will have the previous window handle stored in a variable. Put this together and you will get:
Forgetting to switch back to another window handle after closing a window will leave WebDriver executing on the now closed page, and will trigger a No Such Window Exception. You must switch back to a valid window handle in order to continue execution.
Quitting the browser at the end of a session
When you are finished with the browser session you should call quit, instead of close:
- Quit will:
- Close all the windows and tabs associated with that WebDriver session
- Close the browser process
- Close the background driver process
- Notify Selenium Grid that the browser is no longer in use so it can be used by another session (if you are using Selenium Grid)
Failure to call quit will leave extra background processes and ports running on your machine which could cause you problems later.
Some test frameworks offer methods and annotations which you can hook into to tear down at the end of a test.
If not running WebDriver in a test context, you may consider using try / finally which is offered by most languages so that an exception will still clean up the WebDriver session.
Python’s WebDriver now supports the python context manager, which when using the with keyword can automatically quit the driver at the end of execution.
Window management
Screen resolution can impact how your web application renders, so WebDriver provides mechanisms for moving and resizing the browser window.
В этом руководстве мы узнаем о различных типах оповещений, обнаруженных в тестировании веб-приложений, и о том, как обрабатывать оповещения в Selenium WebDriver. Мы также увидим, как мы принимаем и отклоняем оповещение в зависимости от типа оповещения.
В этом уроке вы узнаете
Что такое оповещение?
Вот несколько типов предупреждений:
1) Простое оповещение
Это простое предупреждение отображает некоторую информацию или предупреждение на экране.
2) Быстрое оповещение.
Это быстрое предупреждение запрашивает некоторый ввод от пользователя, и веб-драйвер селена может ввести текст с помощью sendkeys («input….»).
3) Подтверждение подтверждения.
В этом уведомлении о подтверждении запрашивается разрешение на выполнение какого-либо типа операции.
Как обрабатывать оповещения в Selenium WebDriver
Интерфейс оповещения предоставляет следующие несколько методов, которые широко используются в Selenium Webdriver.
1) void dismiss () // Нажать на кнопку «Отмена» оповещения.
2) void accept () // Нажать кнопку «ОК» оповещения.
Вы можете увидеть несколько методов оповещения, как показано на экране ниже, предложенном Eclipse.
Мы можем легко переключиться на оповещение из главного окна, используя метод Selenium .switchTo () .
Теперь мы автоматизируем приведенный ниже сценарий.
В этом сценарии мы будем использовать демонстрационный сайт Guru99, чтобы проиллюстрировать обработку Selenium Alert.
Шаг 2) Введите любой идентификатор клиента.
Шаг 4) Отклонить / принять предупреждение.
Обработка оповещений в Selenium Webdriver с использованием приведенного выше сценария
Вывод :
Как работать с всплывающим окном Selenium с помощью Webdriver
В автоматизации, когда у нас есть несколько окон в любом веб-приложении, активность может потребоваться переключить управление между несколькими окнами с одного на другое, чтобы завершить операцию. После завершения операции он должен вернуться в главное окно, то есть в родительское окно. Мы увидим это далее в статье с примером.
В веб-драйвере селена есть методы, с помощью которых мы можем обрабатывать несколько окон.
Driver.getWindowHandles ();
Чтобы обрабатывать все открытые окна с помощью веб-драйвера, мы можем использовать «Driver.getWindowHandles ()», а затем мы можем переключать окно из одного окна в другое в веб-приложении. Тип возвращаемого значения: Iterator .
Driver.getWindowHandle ();
Когда сайт открывается, нам нужно обработать главное окно с помощью driver.getWindowHandle () . Это будет обрабатывать текущее окно, которое однозначно идентифицирует его в этом экземпляре драйвера. Тип возвращаемого значения — String.
Для обработки нескольких окон в Selenium WebDriver, мы следуем следующим шагам.
Теперь мы автоматизируем приведенный ниже сценарий, чтобы увидеть, как обрабатывать несколько окон с помощью Selenium Webdriver.
В этом сценарии мы будем использовать демонстрационный сайт «Guru99», чтобы проиллюстрировать обработку окон.
Шаг 1) Запустите сайт.
Шаг 2) Нажмите на ссылку «Нажмите здесь».
Когда пользователь нажимает на ссылку «Нажмите здесь», открывается новое дочернее окно.
Шаг 3) Откроется новое дочернее окно.
Шаг 4) Введите свой электронный адрес и отправьте.
Шаг 5) Показать учетные данные для доступа при отправке страницы.
Когда вы выполните код, вы увидите, что дочернее окно открыто в новой вкладке.
- Закройте дочернее окно, в котором отображаются учетные данные.
Обработка нескольких окон в селеновом веб-драйвере по вышеуказанному сценарию.
Вывод:
Когда вы выполняете приведенный выше код, он запускает сайт и при нажатии на ссылку «Нажмите здесь» открывает дочернее окно в новой вкладке. Вы можете закрыть дочернее окно и переключиться на родительское окно, когда операция будет полностью завершена. Следовательно, обработка более одного окна в приложении.
Читайте также: