Есть ли способ скрыть браузер при запуске селена в Python? - PullRequest
1 голос
/ 05 марта 2020

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

Некоторые также предлагали использовать фантом JS, но я их не получил. Что теперь делать ...

Ответы [ 3 ]

2 голосов
/ 05 марта 2020

Если вы используете Chrome, вы можете просто установить аргумент без заголовка так:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

driver_exe = 'chromedriver'
options = Options()
options.add_argument("--headless")
driver = webdriver.Chrome(driver_exe, options=options)
1 голос
/ 05 марта 2020

Чтобы скрыть браузер при выполнении тестов с использованием Selenium s , вы можете использовать метод minimal_window () , который в конечном итоге минимизирует / толкает Chrome Контекст просмотра эффективно в фоновом режиме с использованием следующего решения:

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument("--start-maximized")
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
driver = webdriver.Chrome(chrome_options=options, executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe')
driver.get('https://www.google.co.in')
driver.minimize_window()

Альтернатива

В качестве альтернативы вы можете использовать headless атрибут для настройки ChromeDriver для запуска браузера в режиме Безголовый с использованием Селен , и вы можете найти несколько соответствующие обсуждения в:

1 голос
/ 05 марта 2020

Для chrome вы можете передать параметр --headless.

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

from selenium import webdriver
from xvfbwrapper import Xvfb

display = Xvfb()
display.start()

driver = webdriver.Chrome()
driver.get('http://www.stackoverflow.com')

print(driver.title)
driver.quit()

display.stop()

Последний работал для мне вполне хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...