Quand j'essaie d'utiliser --user-data-dir
Pour l'utilisateur actuel de démarrer Chrome à l'aide de sélénium, je reçois une erreur comme suit:
File "C:\Program Files (x86)\Python\lib\site-packages\Selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Program Files (x86)\Python\lib\site-packages\Selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
Selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: user data directory is already in use, please specify a unique value for --user-data-dir argument, or don't use --user-data-dir
Comment puis-je corriger cette erreur?
Ce message d'erreur ...
Selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: user data directory is already in use, please specify a unique value for --user-data-dir argument, or don't use --user-data-dir
... implique que le chromedriver n'a pas pu initialiser le nouveau Navigateur Chrome Session à l'aide de la spécifiée user data directory
Comme il était déjà utilisé.
Cette erreur peut être reproduite comme suit:
Bloc de code:
from Selenium import webdriver
import getpass
options = webdriver.ChromeOptions()
options.add_argument("start-maximized")
options.add_argument(r"--user-data-dir=C:\Users\{}\AppData\Local\Google\Chrome\User Data".format(getpass.getuser()))
driver = webdriver.Chrome(options=options, executable_path=r'C:\WebDrivers\chromedriver.exe')
driver.get("https://www.google.com/")
Terminez la traçabilité pertinente:
[12148:21412:0204/035557.731:ERROR:cache_util_win.cc(21)] Unable to move the cache: Access is denied. (0x5)
[12148:21412:0204/035557.731:ERROR:cache_util.cc(141)] Unable to move cache folder C:\Users\Soma Bhattacharjee\AppData\Local\Google\Chrome\User Data\ShaderCache\GPUCache to C:\Users\Soma Bhattacharjee\AppData\Local\Google\Chrome\User Data\ShaderCache\old_GPUCache_000
[12148:21412:0204/035557.731:ERROR:disk_cache.cc(178)] Unable to create cache
[12148:21412:0204/035557.731:ERROR:shader_disk_cache.cc(605)] Shader Cache Creation failed: -2
Opening in existing browser session.
Traceback (most recent call last):
File "C:\Users\Soma Bhattacharjee\Desktop\Debanjan\PyPrograms\yandex_ru.py", line 18, in <module>
driver = webdriver.Chrome(options=options, executable_path=r'C:\WebDrivers\chromedriver.exe')
File "C:\Python\lib\site-packages\Selenium\webdriver\chrome\webdriver.py", line 81, in __init__
desired_capabilities=desired_capabilities)
File "C:\Python\lib\site-packages\Selenium\webdriver\remote\webdriver.py", line 157, in __init__
self.start_session(capabilities, browser_profile)
File "C:\Python\lib\site-packages\Selenium\webdriver\remote\webdriver.py", line 252, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "C:\Python\lib\site-packages\Selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Python\lib\site-packages\Selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
Selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: user data directory is already in use, please specify a unique value for --user-data-dir argument, or don't use --user-data-dir
La trace d'erreur d'erreur se plaint clairement de Access est refus car le programme n'a pas pu déplacer le dossier de cache ..\ShaderCache\GPUCache
à ..\ShaderCache\old_GPUCache_000
. D'où la création de cache Échec de la création et de la création ultérieure de Shader Cache Création Échec. Bien que ces problèmes soulève le InvalidArgumentException
_ mais capable de pouvoir ouvrir une nouvelle fenêtre dans la session existante Séance de navigateur chromé.
Bien que l'erreur soit lancée, le nouveau Chrome fenêtre est initié mais reste attaché avec la session déjà ouverte chrome, mais la nouvelle fenêtre ne peut être contrôlée par le - webdiver instance. Par conséquent, vous voyez data:,
Dans la barre d'URL.
Vous devez prendre soin de quelques points:
user-data-dir
comme le utilisateur utilisateur car il reste verrouillé par l'autre Chrome processus que vous avez initié manuellement. user-data-dir
AS ..\Data utilisateur\par défaut Pour accéder à Par défaut Chrome Voir le profil . Le correctif le plus simple et le plus facile est; Pour effacer l'ouverture existante chrome pilote: Voici les étapes: Tapez le gestionnaire de tâches à la recherche Spotlight/dans la fenêtre de recherche dans la barre des tâches ou en utilisant d'autres moyens d'accéder au gestionnaire de tâches. Quand la tâche Manager Wizard/Wizard apparaît, recherchez ChromeDriver, cliquez avec le bouton droit de la souris, puis cliquez dessus, puis cliquez sur "Tâche finale". Ce n'est pas un correctif éternel. Une fois que vous avez ouvert chrome Browser plusieurs fois, vous avez obtenu Pour faire la même étape, évitez le problème. J'espère que cela vous aidera à la recherche d'une solution stable.
AS TES Réponse mentionné, j'ai ouvert le gestionnaire de tâches Windows et j'ai fermé tous les processus chrome.exe et chromedriver.exe et cela a fonctionné !!!
J'ai utilisé ces configurations pour ouvrir Google Chrome à l'aide de mon Chrome:
options = webdriver.ChromeOptions()
options.add_argument('user-data-dir=C:\\Users\\my_user\\AppData\\Local\\Google\\Chrome\\User Data')
driver = webdriver.Chrome(executable_path='./chromedriver.exe', options=options)