Задать вопрос

Как запустить web driver chrome без открытия окна броузера(т.е. фоном)?

Привет!

При написании парсера использовал Selenium c webriver Chrome. Все замечательно работает, но при запуске открывает окно браузера. Код следующий:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from time import sleep
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support.ui import Select
from datetime import datetime, timedelta
from pyvirtualdisplay import Display
from selenium.webdriver.chrome.options import Options

browser = webdriver.Chrome(chrome_options=chrome_options) 
browser.get('https://www.itau.com.br')


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

display = Display(visible=0, size=(800, 600))
display.start()


Но окно Chrome все равно вылезает! Нашел что можно добавить опцию "не открывать окно", добавил:

chrome_options = Options()
chrome_options.add_argument("--no-startup-window")


Вот тут то и стала вылезать ошибка:

browser = webdriver.Chrome(chrome_options=chrome_options) 
  File "/Users/Lutchenko/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/selenium/webdriver/chrome/webdriver.py", line 69, in __init__
    desired_capabilities=desired_capabilities)
  File "/Users/Lutchenko/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 92, in __init__
    self.start_session(desired_capabilities, browser_profile)
  File "/Users/Lutchenko/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 179, in start_session
    response = self.execute(Command.NEW_SESSION, capabilities)
  File "/Users/Lutchenko/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 236, in execute
    self.error_handler.check_response(response)
  File "/Users/Lutchenko/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 192, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: unable to discover open pages
  (Driver info: chromedriver=2.27.440174 (e97a722caafc2d3a8b807ee115bfb307f7d2cfd9),platform=Mac OS X 10.12.2 x86_64)


Есть соображения почему она вылезает или какой-нибудь другой способ скрыть окно или запускать в фоновом режиме?
  • Вопрос задан
  • 10853 просмотра
Подписаться 6 Оценить 2 комментария
Решения вопроса 1
baushtelle
@baushtelle Автор вопроса
Вообщем порывшись изрядно в интернете я понял что, пока что, запустить Chrome c Selenium в режиме headless(то есть фоном) на Mac OS невозможно, но скоро такая возможность появится. Та жа история с Firefox. Ставлю Ubuntu для тестов.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Mintormo
Вообще Selenium вроде как больше для тестирования. Посмотрите Scrapy.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы