Что делает метод driver close

Обновлено: 07.07.2024

У меня есть window 1 . Я выполнил событие на window 1 , которое заставляет появиться window 2 .

Теперь я переключился на window 2 и нажал на нем кнопку, которая закрывает window 2 .

Если я использую driver.close() после того, как я выполнил событие, которое привело к закрытию окна, иногда оно выбрасывает NoSuchWindowException .

Если я не использую driver.close() , то иногда driver.getWindowHandles().size() возвращает 2 , даже если есть только одно окно и я подождал достаточно времени, чтобы количество окон стало 1 .

Я обновляю driver.getWindowHandles() и проверяю, чтобы driver.getWindowHandles().size() стал 1 , но иногда это не так.

Мой вопрос: нужно ли мне использовать метод driver.close() после того, как я нажал кнопку, которая привела к закрытию окна? Как правильно использовать driver.close() .

РЕДАКТИРОВАТЬ: Да, это проблема. Если селен не понимает, что window2 был закрыт, он продолжает возвращать дескрипторы как 2 . Предположим, что я закрыл window2 , переключился обратно на window1 и выполнил событие, открывающее window3 . Теперь я хочу переключиться на window3 . Проблема заключается в том, что Selenium все еще думает, что windows2 существует, и теперь есть три окна в соответствии с Selenium.

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

Я написал метод, который мне очень подходит.

Если этот метод возвращает true , это означает, что WebDriver осознал, что окно было closed . driver.getWindowHandles.size() возвращает правильное количество окон , как только вышеуказанный метод возвращает true .

Нет, вам не нужно выполнять driver.close (), если что-то осталось открытым, когда вы выполните driver.quit () в конце вашего теста, WebDriver очистит и убедится, что все выключено правильно.

Selenium может отслеживать, сколько окон открыто, если вы видите дескрипторы окон для закрытых окон, что звучит как потенциальная ошибка. Имейте в виду, что Selenium может занять некоторое время, чтобы понять, что окно закрыто, вы можете попробовать использовать явное ожидание, чтобы дождаться, пока количество дескрипторов окна не упадет до 1, вам нужно добавить следующее Ожидаемое условие:

Затем вы можете использовать его, выполнив:

Или вы можете просто попробовать закрыть окно, выполнив driver.close () и поймав исключение NoSuchWindowException, например.

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

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

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

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

У меня была точно такая же проблема, с которой столкнулись вы.

Прежде чем я выполню действие, которое откроет второе окно, я инициировал

Позже я щелкнул ссылку 1, которая заполняет окно 2, и я переключаюсь в это окно.

Я выполнил свое действие в окне 2, и когда я нажимаю ссылку в окне 2, мое окно закрывается автоматически, и если я использую driver.close() , этого не произойдет, поскольку webdriver выдаст ошибку, как вы сказали

Поэтому вместо того, чтобы пытаться закрыть второе окно, я пытаюсь вернуться к окну 1 с помощью

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

Я знаю, что это что-то вроде взлома . но я никогда не видел ничего подобного тому, что вы описываете, поэтому я думаю, что стоит попробовать. Измените этот код:

  • webDriver.Close() - Закройте окно браузера, в котором находится фокус
  • webDriver.Quit() - Вызов Dispose()
  • webDriver.Dispose() Закрывает все окна браузера и безопасно завершает сеанс

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

В заключение убедитесь, что перед выходом из программы вызывается Quit() или Dispose(), и не используйте метод Close(), если вы не уверены в том, что делаете.

Примечание
Я нашел этот вопрос, когда пытаюсь выяснить связанную проблему, почему моя виртуальная машина закончилась из жесткого диска. Оказывается, исключение вызывало Quit() или Dispose(), чтобы не вызываться каждый прогон, который затем заставлял папку appData заполнять жесткий диск. Поэтому мы правильно использовали метод Quit(), но код был недоступен. Резюме убедитесь, что все пути кода очистят ваши неуправляемые объекты, используя безопасные шаблоны исключений или реализующие IDisposable

И
В случае RemoteDriver, вызывающего Quit() или Dispose(), также будет закрыт сеанс на сервере Selenium. Если сеанс не закрыт, файлы журнала для этого сеанса остаются в памяти.

Ответ 2

Close() - он используется для закрытия браузера или страницы, которая в настоящее время имеет фокус.

Quit() - Он используется для закрытия экземпляра веб-драйвера или уничтожения экземпляра веб-драйвера (Закройте все окна).

Dispose() - Я не знаю об этом методе.

Ответ 3

driver.close и driver.quit - два разных метода для закрытия сеанса браузера в Selenium WebDriver. Понимание их обоих и знание того, когда использовать каждый метод, важно при выполнении теста. Поэтому я попытался пролить свет на оба этих метода.

driver.close - Этот метод закрывает окно браузера, на котором установлен фокус. Несмотря на знакомое название этого метода, WebDriver не реализует интерфейс AutoCloseable .

driver.quit - Этот метод в основном вызывает driver.dispose теперь внутренний метод, который, в свою очередь, закрывает все окна браузера и корректно завершает сеанс WebDriver.

driver.dispose - Как упоминалось ранее, это внутренний метод WebDriver, который был отброшен в соответствии с другим ответом - необходима проверка. Этот метод в действительности не имеет прецедента в обычном рабочем процессе тестирования, поскольку любой из предыдущих методов должен работать в большинстве случаев.

Объяснение варианта использования: Вы должны использовать driver.quit всякий раз, когда хотите завершить программу. Он закроет все открытые окна браузера и завершит сеанс WebDriver. Если вы не используете driver.quit в конце программы, сеанс WebDriver не закроется должным образом и файлы не будут удалены из памяти. Это может привести к ошибкам утечки памяти.

Приведенное выше объяснение должно объяснить разницу между методами driver.close и driver.quit в WebDriver. Я надеюсь, что вы найдете это полезным.

На следующем сайте есть несколько полезных советов по тестированию селена: Ссылка

Ответ 4

quit() : выход из этого драйвера, закрытие каждого связанного окна, которое было открыто.

close() : закройте текущее окно, выйдя из браузера, если оно открыто в настоящее время.

Ответ 5

Основанный на проблеме на Github PhantomJS, quit() не завершает процесс PhantomJS. Вы должны использовать:

Ответ 6

close(): - Предположим, что вы открыли несколько окон браузера с одним экземпляром драйвера, теперь вызов close() для экземпляра драйвера закроет текущее окно, на которое указывает экземпляр драйвера. Но экземпляр драйвера все еще остается в памяти и может использоваться для обработки других открытых окон браузера.

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

dispose(): - я не думаю, что есть метод dispose для экземпляра WebDriver.

Вы можете обратиться к официальному документу по селену по ссылке.

Ответ 7

close() - команда веб-драйвера, которая закрывает окно браузера, которое в данный момент находится в фокусе. Несмотря на знакомое название этого метода, WebDriver не реализует интерфейс AutoCloseable .

В процессе автоматизации, если открыто более одного окна браузера, команда close() закроет только текущее окно браузера, которое в данный момент находится в фокусе. Остальные окна браузера не будут закрыты. Следующий код можно использовать для закрытия текущего окна браузера:

quit() - это команда webdriver, которая вызывает метод driver.dispose, который, в свою очередь, закрывает все окна браузера и завершает сеанс WebDriver. Если мы не используем quit() в конце программы, сеанс WebDriver не будет закрыт должным образом и файлы не будут удалены из памяти. Это может привести к ошибкам утечки памяти.

Если в процессе автоматизации открывается только одно окно браузера, команды close() и quit() работают одинаково. Оба будут различаться по своим функциям, если во время автоматизации открыто более одного окна браузера.

Команда утилизации Dispose() должен вызвать Quit(), и похоже, что это так. Однако эта проблема также связана с тем, что любые последующие действия блокируются до тех пор, пока PhantomJS не будет закрыт вручную.

Продолжение перевода неофициальной документации Selenium для Python.
Перевод сделан с разрешения автора Baiju Muthukadan.
Оригинал можно найти здесь.

2.3. Использование Selenium для написания тестов

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

Результат сверху показывает, что тест завершился успешно.

2.5. Использование Selenium с remote WebDriver


Для использования remote WebDriver (удаленного веб-драйвера) необходимо запустить Selenium server. Для запуска сервера используйте команду:

Строка выше сообщает о том, что вы можете использовать указанный URL для подключения remote WebDriver. Ниже приводится несколько примеров:

Переменная desired_capabilities — это словарь. Вместо того, чтобы использовать словари по умолчанию, вы можете явно прописать значения:

2. Первые шаги

2.2. Пошаговый разбор примера

Модуль selenium.webdriver предоставляет весь функционал WebDriver'а. На данный момент WebDriver поддерживает реализации Firefox, Chrome, Ie и Remote. Класс Keys обеспечивает взаимодействие с командами клавиатуры, такими как RETURN, F1, ALT и т.д…

Далее создается элемент класса Firefox WebDriver.

Метод driver.get перенаправляет к странице URL в параметре. WebDriver будет ждать пока страница не загрузится полностью (то есть, событие “onload” игнорируется), прежде чем передать контроль вашему тесту или скрипту. Стоит отметить, что если страница использует много AJAX-кода при загрузке, то WebDriver может не распознать, загрузилась ли она полностью:

Следующая строка — это утверждение (англ. assertion), что заголовок содержит слово “Python” [assert позволяет проверять предположения о значениях произвольных данных в произвольном месте программы. По своей сути assert напоминает констатацию факта, расположенную посреди кода программы. В случаях, когда произнесенное утверждение не верно, assert возбуждает исключение. Такое поведение позволяет контролировать выполнение программы в строго определенном русле. Отличие assert от условий заключается в том, что программа с assert не приемлет иного хода событий, считая дальнейшее выполнение программы или функции бессмысленным — Прим. пер.]:

WebDriver предоставляет ряд способов получения элементов с помощью методов find_element_by_*. Для примера, элемент ввода текста input может быть найден по его атрибуту name методом find_element_by_name. Подробное описание методов поиска элементов можно найти в главе Поиск Элементов:

После ответа страницы, вы получите результат, если таковой ожидается. Чтобы удостовериться, что мы получили какой-либо результат, добавим утверждение:

В завершение, окно браузера закрывается. Вы можете также вызывать метод quit вместо close. Метод quit закроет браузер полностью, в то время как close закроет одну вкладку. Однако, в случае, когда открыта только одна вкладка, по умолчанию большинство браузеров закрывается полностью:

2.4. Пошаговый разбор примера

Сначала были импортированы все основные необходимые модули. Модуль unittest встроен в Python и реализован на Java’s JUnit. Этот модуль предоставляет собой утилиту для организации тестов.

Модуль selenium.webdriver предоставляет весь функционал WebDriver'а. На данный момент WebDriver поддерживает реализации Firefox, Chrome, Ie и Remote. Класс Keys обеспечивает взаимодействие с командами клавиатуры, такими как RETURN, F1, ALT и т.д…

setUp — это часть инициализации, этот метод будет вызываться перед каждым методом теста, который вы собираетесь написать внутри класса теста. Здесь мы создаем элемент класса Firefox WebDriver.

Далее описан метод нашего теста. Метод теста всегда должен начинаться с фразы test. Первая строка метода создает локальную ссылку на объект драйвера, созданный методом setUp.

Метод driver.get перенаправляет к странице URL в параметре. WebDriver будет ждать пока страница не загрузится полностью (то есть, событие “onload” игнорируется), прежде чем передать контроль вашему тесту или скрипту. Стоит отметить, что если страница использует много AJAX-кода при загрузке, то WebDriver может не распознать, загрузилась ли она полностью:

Следующая строка — это утверждение, что заголовок содержит слово “Python”:

WebDriver предоставляет ряд способов получения элементов с помощью методов find_element_by_*. Для примера, элемент ввода текста input может быть найден по его атрибуту name методом find_element_by_name. Подробное описание методов поиска элементов можно найти в главе Поиск Элементов:

После ответа страницы, вы получите результат, если таковой ожидается. Чтобы удостовериться, что мы получили какой-либо результат, добавим утверждение:

Метод tearDown будет вызван после каждого метода теста. Это метод для действий чистки. В текущем методе реализовано закрытие окна браузера. Вы можете также вызывать метод quit вместо close. Метод quit закроет браузер полностью, в то время как close закроет одну вкладку. Однако, в случае, когда открыта только одна вкладка, по умолчанию большинство браузеров закрывается полностью.:

Завершающий код — это стандартная вставка кода для запуска набора тестов [Сравнение __name__ с "__main__" означает, что модуль (файл программы) запущен как отдельная программа («main» (англ.) — «основная», «главная») (а не импортирован из другого модуля). Если вы импортируете модуль, атрибут модуля __name__ будет равен имени файла без каталога и расширения — Прим. пер.]:

Как прокручивать веб-страницу с помощью selenium webdriver в python?

В настоящее время я использую selenium webdriver для анализа страницы друзей пользователя facebook и извлечения всех идентификаторов из AJAX script. Но мне нужно прокрутить вниз, чтобы получить всех друзей. Как я могу прокрутить вниз в Селене. Я использую python.

Содержание:

2.3. Использование Selenium для написания тестов

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

Результат сверху показывает, что тест завершился успешно.

Selenium для Python. Глава 2. Первые Шаги

Продолжение перевода неофициальной документации Selenium для Python.
Перевод сделан с разрешения автора Baiju Muthukadan.
Оригинал можно найти здесь.

2.2. Пошаговый разбор примера

Модуль selenium.webdriver предоставляет весь функционал WebDriver'а. На данный момент WebDriver поддерживает реализации Firefox, Chrome, Ie и Remote. Класс Keys обеспечивает взаимодействие с командами клавиатуры, такими как RETURN, F1, ALT и т.д…

Далее создается элемент класса Firefox WebDriver.

Метод driver.get перенаправляет к странице URL в параметре. WebDriver будет ждать пока страница не загрузится полностью (то есть, событие “onload” игнорируется), прежде чем передать контроль вашему тесту или скрипту. Стоит отметить, что если страница использует много AJAX-кода при загрузке, то WebDriver может не распознать, загрузилась ли она полностью:

Следующая строка — это утверждение (англ. assertion), что заголовок содержит слово “Python” [assert позволяет проверять предположения о значениях произвольных данных в произвольном месте программы. По своей сути assert напоминает констатацию факта, расположенную посреди кода программы. В случаях, когда произнесенное утверждение не верно, assert возбуждает исключение. Такое поведение позволяет контролировать выполнение программы в строго определенном русле. Отличие assert от условий заключается в том, что программа с assert не приемлет иного хода событий, считая дальнейшее выполнение программы или функции бессмысленным — Прим. пер.]:

WebDriver предоставляет ряд способов получения элементов с помощью методов find_element_by_*. Для примера, элемент ввода текста input может быть найден по его атрибуту name методом find_element_by_name. Подробное описание методов поиска элементов можно найти в главе Поиск Элементов:

После ответа страницы, вы получите результат, если таковой ожидается. Чтобы удостовериться, что мы получили какой-либо результат, добавим утверждение:

В завершение, окно браузера закрывается. Вы можете также вызывать метод quit вместо close. Метод quit закроет браузер полностью, в то время как close закроет одну вкладку. Однако, в случае, когда открыта только одна вкладка, по умолчанию большинство браузеров закрывается полностью:

Содержание:

ОТВЕТЫ

Ответ 1

Вы можете использовать

где Y - высота (на fullhd мониторе это 1080). (Спасибо @lukeis)

Вы также можете использовать

для прокрутки до нижней части страницы.

Если вы хотите прокрутить страницу с бесконечной загрузкой, например, из социальных сетей, Facebook и т.д. (Благодаря @Cuong Tran)

Ответ 2
Ответ 3

тот же метод, что показано здесь:

в python вы можете просто использовать

(Y - это вертикальное положение, которое вы хотите прокрутить)

Ответ 4
Ответ 5

Это помогло, когда я пытался получить доступ к "li", который не был виден.

Ответ 6

Для моей цели я хотел прокрутить вниз, помня о положении окон. Мое решение было похоже и использовал window.scrollY

который перейдет в текущую позицию прокрутки у + 200

Ответ 7

Вот как вы прокручиваете страницу вниз:

Ответ 8
Ответ 9

Надеюсь, что это работает!

Ответ 10

При работе с YouTube плавающие элементы дают значение "0" в качестве высоты прокрутки, поэтому вместо использования "return document.body.scrollHeight" попробуйте с помощью этого "return document.documentElement.scrollHeight" настроить время паузы прокрутки в соответствии с вашим Интернетом. Скорость, иначе он будет работать только один раз, а затем сломается после этого.

Ответ 11

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

Пост @Cuong Tran, с одной основной модификацией, был ответом, который я искал. Я подумал, что другие могут посчитать эту модификацию полезной (она сильно влияет на работу кода), поэтому этот пост.

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

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

(Существует другая модификация, где оператор break находится внутри другого условия (в случае, если страница "залипает"), которое можно удалить).

Ответ 12

прокрутка загрузки страниц. Пример: средний, квора и т.д.

Ответ 13

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

Это намного быстрее, чем ждать 0,5-3 секунды каждый раз, когда ответ может занять 0,1 секунды.

2. Первые шаги

2.1. Простое использование

Если вы установили привязку Selenium к Python, вы можете начать использовать ее с помощью интерпретатора Python.

Код выше может быть сохранен в файл (к примеру, python_org_search.py), и запущен:

Запускаемый вами Python должен содержать установленный модуль selenium.

2.5. Использование Selenium с remote WebDriver


Для использования remote WebDriver (удаленного веб-драйвера) необходимо запустить Selenium server. Для запуска сервера используйте команду:

Строка выше сообщает о том, что вы можете использовать указанный URL для подключения remote WebDriver. Ниже приводится несколько примеров:

Переменная desired_capabilities — это словарь. Вместо того, чтобы использовать словари по умолчанию, вы можете явно прописать значения:

Selenium WebDriver: quit или close?

В этой статье речь пойдет о том как правильно останавливать работу драйвера или, другими словами, как закрыть браузер.
Запускается Selenium driver автоматически во время инициализации, для запуска у него нет отдельного метода.

Если по какой-либо причине запуск браузера не произойдет, то возникнет исключение и вебдрайвер не создастся.

А вот остановка его работы в определенное время ложится на разработчика тестов. WebDriver содержит два метода – quit() и close() , которые можно использовать для остановки работы браузера.

Поэтому для корректного завершения работы драйвера после выполнения теста используйте метод quit() .

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

Если вы хотите просто уйти с текущей страницы, но не закрывать ее или браузер, можете просто использовать:

Warning: count(): Parameter must be an array or an object that implements Countable in /var/www/u0420283/data/www/internetka.in.ua/wp-includes/class-wp-comment-query.php on line 405

3 комментариев

С другими браузерами тоже самое. Эти 2 метода принципиально разные, метод close() не завершает работу сервисов, он просто закрывает одну страницу (браузер уже закрывается сам собой, если страница последняя), поэтому так и происходит. Для корректного завершения работы всегда используйте quit(), он закроет все открытые окна сам. Если же необходимо использовать close() для закрытия одного окна, но оно может быть и единственным, то сделайте обвертку и проверяйте количество открытых окон:

Свежие записи

Поиск

Рубрики

Метки

Реклама

выгодные цены на новый диплом психолога с отличием, доступна регистрация в реестре Украины

выгодные цены на новый диплом психолога с отличием, доступна регистрация в реестре Украины

2.4. Пошаговый разбор примера

Сначала были импортированы все основные необходимые модули. Модуль unittest встроен в Python и реализован на Java’s JUnit. Этот модуль предоставляет собой утилиту для организации тестов.

Модуль selenium.webdriver предоставляет весь функционал WebDriver'а. На данный момент WebDriver поддерживает реализации Firefox, Chrome, Ie и Remote. Класс Keys обеспечивает взаимодействие с командами клавиатуры, такими как RETURN, F1, ALT и т.д…

setUp — это часть инициализации, этот метод будет вызываться перед каждым методом теста, который вы собираетесь написать внутри класса теста. Здесь мы создаем элемент класса Firefox WebDriver.

Далее описан метод нашего теста. Метод теста всегда должен начинаться с фразы test. Первая строка метода создает локальную ссылку на объект драйвера, созданный методом setUp.

Метод driver.get перенаправляет к странице URL в параметре. WebDriver будет ждать пока страница не загрузится полностью (то есть, событие “onload” игнорируется), прежде чем передать контроль вашему тесту или скрипту. Стоит отметить, что если страница использует много AJAX-кода при загрузке, то WebDriver может не распознать, загрузилась ли она полностью:

Следующая строка — это утверждение, что заголовок содержит слово “Python”:

WebDriver предоставляет ряд способов получения элементов с помощью методов find_element_by_*. Для примера, элемент ввода текста input может быть найден по его атрибуту name методом find_element_by_name. Подробное описание методов поиска элементов можно найти в главе Поиск Элементов:

После ответа страницы, вы получите результат, если таковой ожидается. Чтобы удостовериться, что мы получили какой-либо результат, добавим утверждение:

Метод tearDown будет вызван после каждого метода теста. Это метод для действий чистки. В текущем методе реализовано закрытие окна браузера. Вы можете также вызывать метод quit вместо close. Метод quit закроет браузер полностью, в то время как close закроет одну вкладку. Однако, в случае, когда открыта только одна вкладка, по умолчанию большинство браузеров закрывается полностью.:

Завершающий код — это стандартная вставка кода для запуска набора тестов [Сравнение __name__ с "__main__" означает, что модуль (файл программы) запущен как отдельная программа («main» (англ.) — «основная», «главная») (а не импортирован из другого модуля). Если вы импортируете модуль, атрибут модуля __name__ будет равен имени файла без каталога и расширения — Прим. пер.]:

2.1. Простое использование

Если вы установили привязку Selenium к Python, вы можете начать использовать ее с помощью интерпретатора Python.

В этой статье речь пойдет о том как правильно останавливать работу драйвера или, другими словами, как закрыть браузер.
Запускается Selenium driver автоматически во время инициализации, для запуска у него нет отдельного метода.

Если по какой-либо причине запуск браузера не произойдет, то возникнет исключение и вебдрайвер не создастся.

А вот остановка его работы в определенное время ложится на разработчика тестов. WebDriver содержит два метода – quit() и close() , которые можно использовать для остановки работы браузера.

Поэтому для корректного завершения работы драйвера после выполнения теста используйте метод quit() .

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

Если вы хотите просто уйти с текущей страницы, но не закрывать ее или браузер, можете просто использовать:


Warning: count(): Parameter must be an array or an object that implements Countable in /var/www/u0420283/data/www/internetka.in.ua/wp-includes/class-wp-comment-query.php on line 405

3 комментариев

С другими браузерами тоже самое. Эти 2 метода принципиально разные, метод close() не завершает работу сервисов, он просто закрывает одну страницу (браузер уже закрывается сам собой, если страница последняя), поэтому так и происходит. Для корректного завершения работы всегда используйте quit(), он закроет все открытые окна сам. Если же необходимо использовать close() для закрытия одного окна, но оно может быть и единственным, то сделайте обвертку и проверяйте количество открытых окон:

Свежие записи

Поиск

Рубрики

Метки

Реклама

выгодные цены на новый диплом психолога с отличием, доступна регистрация в реестре Украины

выгодные цены на новый диплом психолога с отличием, доступна регистрация в реестре Украины

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