Вновь созданный профиль chrome не будет загружен в - PullRequest
1 голос
/ 12 апреля 2020

Когда я запускаю этот код

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

chrome_options = Options()
chrome_options.add_argument("--disable-extensions")
chrome_options.add_argument("--disable-infobars")
chrome_options.add_argument("--start-maximized")
chrome_options.add_argument(r"user-data-dir=C:\Users\micha\AppData\Local\Google\Chrome\User Data\Profile 1")

driver = webdriver.Chrome(executable_path=r'C:\Users\micha\Desktop\Visual_projects\chromedriver.exe', chrome_options = chrome_options)

driver.get("https://store.steampowered.com/")

Эта ошибка появляется: [12216: 1336: 0411 / 232857.718: ОШИБКА: browser_switcher_service. cc (238)] XXX Init ()

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

Я искал везде, как исправить эту ошибку, но я думаю, что руководства устарели

Ответы [ 2 ]

2 голосов
/ 13 апреля 2020

Не совсем ответ на ваш вопрос. Но я нашел эту ссылку очень полезной.

Также я вижу, что вы пытаетесь включить опции dir пользователя. На самом деле, это не требуется, поскольку при запуске chromedriver.exe создается временный каталог.

Познакомьтесь с опциями chromedriver.exe - chromedriver.exe -h.

Смотрите пример ниже, который прекрасно работает на моем конце. Кроме того, я предпочитаю использовать пути без пробелов в windows, это помогает сделать вещи простыми. Если вы используете --verbose вместо --log-level=INFO, вы получите все журналы.

В журнале chromedriver вы можете видеть аргументы по умолчанию, данные для chromedriver.exe.

import time, os

from selenium import webdriver
from selenium.webdriver.chrome.service import Service

exePath = './driver/chromedriver.exe'
logPath = os.path.join(os.getcwd(),'logs','chromedriver.log')
serviceArgs = ["--log-level=INFO", "--readable-timestamp", "--append-log"]

# service = Service(executable_path=exePath, log_path=logPath, service_args=serviceArgs)
service = Service(log_path=logPath, service_args=serviceArgs)
service.start()
print(service.service_url)
print(service.process.pid)

# driver = webdriver.Remote(service.service_url)
# Update to remove infobars and save password popups

options = webdriver.ChromeOptions()
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
prefs = {"profile.password_manager_enabled": False, "credentials_enable_service": False}
options.add_experimental_option("prefs", prefs)
caps = options.to_capabilities()

driver = webdriver.Remote(service.service_url, desired_capabilities=caps)

# driver = webdriver.Remote('http://localhost:63404')
driver.get('http://www.google.com/')
driver.maximize_window()
time.sleep(3) # Let the user actually see something!
driver.get("https://github.com")
time.sleep(3)
driver.back()
time.sleep(3)
driver.close()
driver.quit()
service.stop()

service.stop() завершает chromedriver.exe, иначе он будет продолжать работать в фоновом режиме.
Структура папок на моем конце выглядит следующим образом:

rootDir
--driver/chromedriver.exe
--testchromedriver.py (with above code)

Также, создается как killchromedriver.py файл для завершения всех chromedriver.exe экземпляров в случае, если они работают в фоновом режиме.

import psutil # pip install psutil

for process in psutil.process_iter():
    if(process.name() == 'chromedriver.exe'):
        process.terminate()
        print('chromedriver.exe was running and is now terminated')

Обновление: добавление опций для удаления информационной панели и сохранения всплывающих окон с паролями

0 голосов
/ 16 апреля 2020

Обновлен мой браузер chrome до версии 81, поэтому пришлось обновить и веб-драйвер chrome. Но после обновления он начал давать мне и эту ошибку. Вот код, я удалил из него другие методы / функции.

from selenium import  webdriver
from time import sleep
import sys
sys.path.insert(1, '../..')
from secrets import username, password

class MyBot():
    def __init__(self):
        self.driver=webdriver.Chrome()

bot=MyBot()

[3220: 14704: 0416 / 145232.014: ОШИБКА: browser_switcher_service. cc (238)] XXX Init ()

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