現在のユーザーが--user-data-dir
を使用して開始しようとすると、Chrome Seleniumを使用して次のようなエラーが発生します。
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
このエラーを修正するにはどうすればよいですか?
このエラーメッセージ...
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
...すでに ChromeDriver が指定されたuser data directory
を使用して新しい Chrome Browser セッションを開始できなかったことを意味します使用中で。
このエラーは次のように再現できます。
コードブロック:
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/")
関連するトレースバックを完了します。
[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
エラースタックトレースは、プログラムがキャッシュフォルダー..\ShaderCache\GPUCache
を..\ShaderCache\old_GPUCache_000
に移動できなかったため、アクセスが拒否されたと明らかに不平を言っています。したがって、cacheの作成に失敗し、その後Shader Cache Creationの作成に失敗しました。これらの問題によりInvalidArgumentException
が発生しますが、既存の Chromeブラウザセッション内で新しいウィンドウを強制的に開くことができます。
エラーがスローされても、新しいChromeウィンドウが開始されますが、すでに開いている Chrome セッションに接続されたままですが、新しいウィンドウは WebDriver インスタンス。したがって、URLバーにdata:,
が表示されます。
次の2つの点に注意する必要があります。
user-data-dir
をUser Dataとして設定しないでください手動で開始した他のChromeプロセスによってロックされたままです。user-data-dir
を次のように設定できます..\User Data\Default Default Chrome Profile 。[にアクセスします.____。]最も簡単で簡単な修正は次のとおりです。既存の開かれたchromeドライバーをクリアするには:手順は次のとおりです:タスクバーのSpotlight検索/検索ウィンドウでタスクマネージャーに入力するか、タスクマネージャーにアクセスする他の方法を使用します。タスクがマネージャーウィザード/ウィンドウがポップアップ表示され、chromedriverを検索して右クリックし、[タスクの終了]をクリックします。それだけです。これは永遠の解決策ではありません。chromeブラウザを複数回開くと、同じステップを実行して問題を回避します。安定した修正を探しているときに、これが役立つことを願っています。
Tesの回答 で述べたように、Windowsタスクマネージャーを開いて、chrome.exeとchromedriver.exeのすべてのプロセスを閉じたところ、動作しました!!!
これらの設定を使用してGoogleを開きましたChrome using my Chrome Profile:
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)