selenium-world.net Open in urlscan Pro
133.18.32.27  Public Scan

URL: https://selenium-world.net/selenium-tips/3519/
Submission: On January 11 via api from US — Scanned from JP

Form analysis 2 forms found in the DOM

POST https://selenium-world.net/wp-comments-post.php

<form action="https://selenium-world.net/wp-comments-post.php" method="post" id="commentform" class="comment-form">
  <p class="comment-notes"><span id="email-notes">メールアドレスが公開されることはありません。</span></p>
  <p class="comment-form-comment"><label for="comment">コメント</label><textarea id="comment" name="comment" cols="45" rows="8" aria-required="true" style="overflow: hidden; overflow-wrap: break-word; resize: none; height: 154px;"></textarea></p>
  <div id="commentform-author">
    <p class="comment-form-author"><label for="author">名前</label><input id="author" name="author" type="text" value="" size="30" maxlength="245" aria-required="true"></p>
    <p class="comment-form-email"><label for="email">メールアドレス</label><input id="email" name="email" type="text" value="" size="30" maxlength="100" aria-describedby="email-notes" aria-required="true"></p>
  </div>
  <p class="comment-form-url"><label for="url">ウェブサイト</label><input id="url" name="url" type="text" value="" size="30" maxlength="200"></p>
  <p class="comment-form-cookies-consent"><input id="wp-comment-cookies-consent" name="wp-comment-cookies-consent" type="checkbox" value="yes"><label for="wp-comment-cookies-consent">次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。</label></p><input
    type="hidden" name="g-recaptcha-response" class="sgr-main"
    value="03AFcWeA5UWt00LZFVLBuxIixCDWjWX8Z7UCIRkkF2dpYgCv7rJVf0deYsElvCrk40oP-lJFfCSZFMdlC878sM-HRWgEqOtMQ2ornf4xoTXRGTRhFrtFykl80OTDjNu8Fl1vqqoq2IMvZw3xRTtJxvvtbPxwyc_vZiIa4HMFZMFEQqUrJXghENvGVrIWtx-3hiHJCx-uUslwaNOw0Q0XpGmpJPjtaHoLNGN7vMC83DSJvbDEEUVe3LZo310fizoPpszRz_CM_z7M_ZxqDrpyAotMuYeW4_8IS5h1F72wTBYVeWhh1xMSHvIedoU0JvwuFuw19l--ObOhZWHTRR1ohJJEiAH-dFVaOGA6pyKQ4qDSeEvnuosGG_yaLBbo-uE4jsGG5aC15T35sBAgZ9E1-5gwyS04vGMJbnT_Wc9xM5EIT7gWyUkilfVs_vAQfrN6TTeJZu4IbMtDCxQMxI9VzfbC5dF57JDdTrk3VZEzAelN0eqHatQrooQKDsySg6U3HJHIo-TgVhuwU6gcifDkxGDH6qoYhqYJtOgupF_y_M8zHKOn_jFYFtgv5tq5UVX0Kty0iSv1fhKGQ6CgGULkOpwK16ZqmC5TQlRw">
  <p class="form-submit"><input name="submit" type="submit" id="submit" class="submit" value="コメントを送信"><input type="hidden" name="comment_post_ID" value="3519" id="comment_post_ID"><input type="hidden" name="comment_parent" id="comment_parent"
      value="0"></p>
</form>

GET https://selenium-world.net/

<form itemprop="potentialAction" itemscope="" itemtype="https://schema.org/SearchAction" method="get" class="search-form" action="https://selenium-world.net/">
  <meta itemprop="target" content="https://selenium-world.net/?s={s}">
  <label><input itemprop="query-input" type="search" class="search-field" placeholder="  サイト内検索" value="" name="s" title="サイト内検索" required=""></label>
  <input type="submit" class="search-submit" value="検索">
</form>

Text Content

 * English

 * HOME
 * 支援ツール
 * ダウンロード
 * ライセンス
 * Selenium Tips
 *   RSS 
 *   Feedly 

Seleniumワールド

XPath取得ツール


 1. ホーム>
 2. Selenium Tips


SELENIUMでCHROMEのプロファイルを使う


CHROMEのユーザープロファイル

Chromeのユーザー毎のデータ(履歴、ブックマーク、パスワード等)は、ユーザープロファイルに保存されます。
SeleniumでChromeDriverを動かす場合、デフォルトではユーザープロファイルは一時ディレクトリに作成され、終了後にクリアされます。ログイン情報を引き継ぎたい場合は、使用するユーザープロファイルを指定する必要があります。

ユーザープロファイルは、Chrome起動時のオプションで指定します。

–user-data-dirユーザープロファイルの保存先を指定–profile-directory使用するユーザープロファイルを指定

現在使用しているプロファイルは、chrome://versionで見ることができます。

上の画像では 
–user-data-dir:C:\Users\xxxxx\AppData\Local\Google\Chrome\User Data
–profile-directory:Profile 1
となります。


動作

–USER-DATA-DIRを指定しない場合

プロファイルは一時ファイルとして作成され、Chrome終了後に廃棄されます。

–PROFILE-DIRECTORYを指定しない場合

ユーザープロファイルは–user-data-dirで指定したフォルダ内のデフォルトのプロファイル(通常はDefault)を使用します。

指定したフォルダが存在しない場合

–user-data-dir、–profile-directoryに指定したフォルダが存在しない場合は、自動でフォルダが作成されます(Windows環境でのみ確認)ので、タイプミスに注意しましょう。


CHROMEDRIVERでのユーザープロファイルの指定

ChromeDriverのChromeOptionsクラスを利用します。
add_argumentメソッドを使用して、オプション項目を追加しています。

Python Java C# VB.NET Ruby JavaScript

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

options = Options()
options.add_argument('--user-data-dir=D:\\tmp\\User Data')
options.add_argument('--profile-directory=Profile1')
options.add_argument('--lang=en')
path = r'D:\tmp\driver\chromedriver_win32\chromedriver.exe'

driver = webdriver.Chrome(executable_path=path ,options=options)
driver.get("chrome://version")
#driver.quit()


package example;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;


public class App
{
    public static void main( String[] args )
    {
        ChromeOptions options = new ChromeOptions();
        options.addArguments("--user-data-dir=D:\\tmp\\User Data");
        options.addArguments("--profile-directory=Profiel1");
        options.addArguments("--lang=en");
        String path = "D:\\tmp\\driver\\chromedriver_win32\\chromedriver.exe";
        System.setProperty("webdriver.chrome.driver", path);

        WebDriver driver = new ChromeDriver(options);
        driver.get("chrome://version");
        //driver.quit();
    }
}




using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;

namespace example
{
    class Program
    {
        static void Main(string[] args)
        {
            ChromeOptions options = new ChromeOptions();
            options.AddArgument("--user-data-dir=D:\\tmp\\User Data");
            options.AddArgument("--profile-directory=Profile1");
            options.AddArgument("--lang=en");
            String path = @"D:\tmp\driver\chromedriver_win32";    //フォルダを指定

            IWebDriver driver = new ChromeDriver(path, options);
            driver.Navigate().GoToUrl("chrome://version");
            //driver.Quit();
        }
    }
}



Imports OpenQA.Selenium.Chrome
Module Module1
    Sub Main()
       Dim options = New ChromeOptions()
        'エスケープなしでも通る
        options.AddArgument("--user-data-dir=D:\tmp\User Data")	     
        options.AddArgument("--profile-directory=Profile1")
        options.AddArgument("--lang=en")
        'フォルダを指定
       Dim path = "D:\\tmp\\driver\\chromedriver_win32"

       Dim driver = New ChromeDriver(chromeDriverDirectory:=path, options:=options)
        driver.Navigate.GoToUrl("chrome://version")
        'driver.Quit()
    End Sub
End Module


require "selenium-webdriver"

options = Selenium::WebDriver::Chrome::Options.new
options.add_argument('--user-data-dir=D:\tmp\User Data')    #エスケープなしでも通る
options.add_argument('--profile-directory=Profiel1')
options.add_argument('--lang=en')
Selenium::WebDriver::Chrome.driver_path = 'D:\tmp\driver\chromedriver_win32\chromedriver.exe'

driver = Selenium::WebDriver.for :chrome , options: options
driver.get("chrome://version")
#driver.quit()


let webdriver = require('selenium-webdriver');
let chrome = require('selenium-webdriver/chrome');

var options = new chrome.Options();
options.addArguments("--user-data-dir=D:\\tmp\\User Data");
options.addArguments("--profile-directory=Profile1");
options.addArguments("--lang=en");
let path = "D:\\tmp\\driver\\chromedriver_win32\\chromedriver.exe";

(async () => {
    var driver = await new webdriver.Builder()
        .forBrowser('chrome')
        .setChromeOptions(options)
        .setChromeService(new chrome.ServiceBuilder(path))
        .build();    
    await driver.get("chrome://version");
    //await driver.quit();
})();



ユーザープロファイルの重複

同一のユーザーデータディレクトリで、複数のChromeDriverを操作することはできません。同時に2個以上のChromeDriverを操作する場合は、–user-data-dirの指定を分ける必要があります。

エラーメッセージ

InvalidArgumentException: 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

Chromeを手動で開いている場合も、ChromeDriver側で同じユーザーデータディレクトリを同時に使用することはできません。
ですから、ChromeDriver用のユーザーデータディレクトリ(–user-data-dir)は、手動用とは分けておいたほうがよいでしょう。

2020-11-292021-01-19Selenium Tips--user-data-dir,ChromeDriver,ChromeOptions

Posted by sj

--------------------------------------------------------------------------------


よろしければシェアお願いします

   
 * Twitter
   
 * Facebook
   
 * Pin it0
   
 * LinkedIn-
   
 * B!Hatena4
   
 * Pocket8
   
 * Copy-


SeleniumでFirefoxのプロファイルを使う
Next
SeleniumでSVG要素を取得するには?
Prev


ディスカッション


コメント一覧

まだ、コメントがありません


コメントをどうぞ コメントをキャンセル

メールアドレスが公開されることはありません。

コメント

名前

メールアドレス

ウェブサイト

次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。




この記事のトラックバックURL


最近の投稿

 * SeleniumからJavaScriptを実行する
 * SeleniumでJavaScriptを実行した場合の変数のスコープ
 * SeleniumからローカルのHTMLファイルを表示
 * SeleniumでEdge(Chromium版)をヘッドレスモードで利用する。
 * SeleniumでヘッドレスFirefoxを利用する
 * SeleniumでヘッドレスChromeを利用する
 * SeleniumでEdge(Chromium版)のプロファイルを使う
 * SeleniumでFirefoxのプロファイルを使う


カテゴリー

 * CodeChecker
 * Selenium Tips
 * XpathGetter
 * トラブルシューティング


姉妹サイト

SeleniumでRPA






Copyright © 2024 Seleniumワールド All Rights Reserved.

WordPress Luxeritas Theme is provided by "Thought is free".

PAGE TOP