普段使っているブラウザーのプロファイルをWebDriverで使いたい。
Chromeの場合
var options = new ChromeOptions();
options.AddArguments(@"--user-data-dir=C:\Users\Taro\AppData\Local\Google\Chrome\User Data");
options.AddArguments(@"--profile-directory=プロファイル名");
ChromeDriver driver = new ChromeDriver(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), options);
try
{
// Navigate to Url
driver.Navigate().GoToUrl("https://www.google.co.jp/");
}finally
{
Console.ReadKey();
driver.Quit();
}
Firefoxの場合
使いにくい。
FirefoxOptions options = new FirefoxOptions();
FirefoxProfile profile = new FirefoxProfile(@"Firefoxのプロファイル");
options.Profile = profile;
FirefoxDriver driver = new FirefoxDriver(options);
try
{
// Navigate to Url
driver.Navigate().GoToUrl("https://www.google.co.jp/");
}finally
{
Console.ReadKey();
driver.Quit();
}
注意
ChromeもFirefoxも普段使っているプロファイルを想定している。
Chromeはコンソールでエラー表示が出るが、一応 動いてるっぽい。
Firefoxはブラウザーをいつものように使っていると、そのプロセスがロックファイルを使って、C#プログラムを起動できないセキュリティの高い仕様のようだ。プロセスを使っていない場合(ブラウザーを普段使いしていない場合)、プログラムは起動するがプロファイルが一時ファルダにコピーされるうえ、オーバーヘッドが大きく、やたら起動に時間がかかる。
解決方法は今の時点で見つからず。