Как использовать профили Chrome через Headless Chrome с помощью Selenium и Python
def __init__(self):
options = webdriver.ChromeOptions()
options.add_argument("user-data-dir=bot_data")
options.add_argument("--headless") # Runs Chrome in headless mode.
options.add_argument('--no-sandbox') # Bypass OS security model
options.add_argument('--disable-gpu') # applicable to windows os only
options.add_argument('start-maximized') #
options.add_argument('disable-infobars')
options.add_argument("--disable-extensions")
# self.driver = webdriver.Chrome(ChromeDriverManager().install(), options=options)
self.driver = webdriver.Chrome('chromedriver.exe',
options=options)
self.driver.get('https://www.google.com')
self.wait = WebDriverWait(self.driver, 10)
Есть у меня коды. Я хочу поменять его на безголовый браузер. Но я получаю сообщение об ошибке.
Я добавил снимок экрана, чтобы показать ошибку.
1 ответ
Это сообщение об ошибке...
ERROR:devtools_http_handler.cc(288)] Error writing DevTools active port to file
... означает, что при записи активного порта DevTools в требуемый файл произошла ошибка.
Согласно обсуждению в разделе Как открыть профиль Chrome через Python вместо указания только имени каталога черезuser-data-dir
, Вам нужно пройти полный путь изuser-data-dir
.
Решение
Итак, вам нужно заменить строку кода:
options.add_argument("user-data-dir=bot_data")
С:
options.add_argument("user-data-dir=C:\\Users\\AtechM_03\\AppData\\Local\\Google\\Chrome\\User Data\\bot_data")
Ссылка
Вы можете найти пару соответствующих обсуждений в:
- Как использовать профиль Chrome в Selenium Webdriver Python 3
- Селен: укажите на сеанс Chrome по умолчанию
Outro
Пара соответствующих документов: