Как запустить безголовый Chrome в OS X

#python #selenium-chromedriver #headless #macos-big-sur #webautomation

#питон #селен-хромовый преобразователь #безголовый #macos-биг-сур #веб-автоматизация

Вопрос:

Я пытаюсь запустить Chrome в безголовом режиме для некоторой автоматизации с помощью Selenium и Python. Я перепробовал все аргументы, но Chrome не запускается в безголовом режиме. Пожалуйста, помогите. Chrome запустится со всеми аргументами, кроме headless.

 from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager 
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument("--headless")
options.add_argument("--no-sandbox")
options.add_argument('--no-proxy-server')
options.add_argument("--proxy-server='direct://'")
options.add_argument("--proxy-bypass-list=*")
options.add_argument("--disable-gpu")
options.add_argument("--disable-infobars")
options.add_argument("--disable-extensions")
options.binary_location = "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
#options.headless = True
#options.add_argument("--window-size=780,620")
#options.add_argument("--headless")
#options.add_argument("--ignore-certificate-errors")
#options.add_argument("--disable-extensions")
#options.add_argument("--disable-dev-shm-usage")
driver = webdriver.Chrome(options = options, executable_path= "/Users/chromedriver")
driver.get("https://www.google.com")
print ("Headless Chrome Initialized")
 

Комментарии:

1. Первое чувство отладки: какое сообщение об ошибке вы видите, когда запускаете его в безголовом режиме?

2. Я не вижу сообщения об ошибке. Я вижу, как значок Chrome появляется в dock и мгновенно исчезает / закрывается. Затем в консоли появится сообщение о печати.

Ответ №1:

Это сработало для меня раньше, чем несколько месяцев назад:

 options = Options()
options.add_argument("headless")
options.add_argument("--start-minimized")
driver = webdriver.Chrome(options=options, executable_path=r'C:pathtochromedriver.exe')
 

или

 options = Options()
options.headless = True
driver = webdriver.Chrome(options=options, executable_path=r'C:pathtochromedriver.exe')
 

Комментарии:

1. Спасибо! Я пробовал это делать, но, похоже, это не возымело никакого эффекта.

2. Извините, headless отлично работает в Windows и Ubuntu, к сожалению, не может быть протестирован на Mac. возможно, вы можете попробовать PhantomJS, который по умолчанию безголовый.

3. Я попробовал это на своей виртуальной машине Windows 10 и получил тот же результат. Я вижу, как значок Chrome появляется на панели задач и мгновенно исчезает / закрывается. Затем в консоли появляется сообщение о печати.

4. Я почти уверен, что это то, что делает headless. Пока вы не видите окна и браузер работает, это должно означать, что все хорошо

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

Ответ №2:

Это то, что на самом деле делает безголовый режим. Он показывает, что браузер Chrome запущен, но поскольку вы запускаете его в безголовом режиме, пользовательского интерфейса нет, и это нормально. Если ваши тесты проходят в безголовом режиме — все в порядке.