web-dev-qa-db-ja.com

chrome using Python Selenium Webdriver?

だから私はchrome pythons webdriverを使用してデフォルトのプロファイルで開きたい。

25
MadRabbit

これが最終的に私のために働いたものです。

from Selenium import webdriver

options = webdriver.ChromeOptions() 
options.add_argument("user-data-dir=C:\\Path") #Path to your chrome profile
w = webdriver.Chrome(executable_path="C:\\Users\\chromedriver.exe", chrome_options=options)

chromeプロフィールデータへのパスを見つけるには、chrome://version/アドレスバーに。例えば鉱山はC:\Users\pc\AppData\Local\Google\Chrome\User Data\Default、スクリプトで使用するには、\Default\したがって、最終的にはC:\Users\pc\AppData\Local\Google\Chrome\User Data

また、Selenium専用の別のプロファイルが必要な場合:パスを他のパスに置き換え、起動時に存在しない場合はchromeが新しいプロファイルとディレクトリを作成します。

56
MadRabbit

これで私の問題が解決しました。 (最後にデフォルトを削除)

from Selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument("--user-data-dir=/home/username/.config/google-chrome")

cls.driver = webdriver.Chrome(options=options,
                              executable_path="./../ext/chromedriver")

Chrome_Optionsは非推奨です。代わりにoptionsを使用してください

10
Nils Zenker

この答えは非常にシンプルで、説明もありません。

from Selenium import webdriver
from Selenium.webdriver.chrome.options import Options

exec_path_chrome = "path/to/Google Chrome" #Do not use this path that is extracted from "chrome://version/"
exec_path_driver = "path/to/chromedriver"

ch_options = Options() #Chrome Options
ch_options.add_argument("user-data-dir = /path/to/Chrome Profile") #Extract this path from "chrome://version/"

driver = webdriver.Chrome(executable_path = exec_path_driver, options = ch_options) #Chrome_Options is deprecated. So we use options instead.

driver.get("https://stackoverflow.com/a/57894065/4061346")

@MadRabbitがタイプchrome://version/をアドレスバーに入力して、chromeプロフィールデータへのパスを見つけます。

  • Windowsでは次のように表示されますC:\Users\pc\AppData\Local\Google\Chrome\User Data\Default
  • Macでは次のように表示されます/Users/user/Library/Application Support/Google/Chrome/Default

あとは最後の部分を削除するだけです Default プロファイルパスから。

注:問題を回避するために、同時に複数のセッションを実行しないでください。

0
Youssof H.

ちょうど私のために働いたものを共有するために。デフォルトのプロファイルの使用は複雑でした。chromeはクラッシュし続けます。

from pathlib import Path
from Selenium import webdriver

driver_path = Path("{}/driver/chromedriver75.exe".format(PATH_TO_FOLDER))
user_data_dir = Path("{}/driver/User Data".format(PATH_TO_FOLDER))

options = webdriver.ChromeOptions()

# TELL WHERE IS THE DATA DIR
options.add_argument("--user-data-dir={}".format(user_data_dir))

# USE THIS IF YOU NEED TO HAVE MULTIPLE PROFILES
options.add_argument('--profile-directory=Default')

driver = webdriver.Chrome(executable_path=driver_path, options=options)

driver.get("https://google.com/")

これを行うことでChromeはフォルダーを作成しますUser Dataそして、必要な場所にすべてのデータを保持します。プロジェクトを別のマシンに移動するのは簡単です。

0