web-dev-qa-db-ja.com

Chromeドライバーと既存のすべてのブラウザーCookieを使用してSeleniumを起動するにはどうすればよいですか?

私がこれまでに理解していることから、Chromeドライバーは常にブラウザーのCookieが保存されていない状態で起動します。

Chromeに保存されているすべてのCookieでドライバーを起動する必要があります。

すでに保存されているCookieを使用してドライバーを起動する方法はありますか? .net 4.5でC#を使用しています。

9
Luana

はい、Firefoxプロファイルと同じように保存されたchromeプロファイルを呼び出すことでそれを行うことができます。以下は、少し前に行ったときにメモした手順です。

javaでは、ChromeOptionsとChrome Profileを使用してこれを行うことができます。chrome chrome:// version /に移動すると、プロファイルパスと実行可能パスが表示されます。 。

私がこれに取り組んでいるように、プロファイルパスは\Local\Google\Chrome\User Data\Profile 3です。これは通常のブラウザでchrome://version/に移動したときに表示されるものを表示していますchromeブラウザ。このプロファイルでは、i stackoverflowに移動し、資格情報を保存しました。以下のコードで使用します

Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("binary", "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe");

System.setProperty("webdriver.chrome.driver", "E:\\Selenium_setups\\poi-3.12\\chromedriver.exe");
ChromeOptions options = new ChromeOptions();

options.setExperimentalOption("prefs", prefs);
options.addArguments("user-data-dir=C:\\Users\\murali\\AppData\\Local\\Google\\Chrome\\User Data\\Profile 3");
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
WebDriver driver = new ChromeDriver(capabilities);

//WebDriver driver = new ChromeDriver(options);
driver.get("http://stackoverflow.com/");

私の理解によると、ログインとして表示されるstackoverflow.comページを除外しましたが、初めてログインしていません。したがって、chrome:// version/in chromeによって開かれました。ドライバー、プロファイルパスは\ Local\Google\Chrome\User Data\Profile 3\Defaultとして表示されます。次に、そのプロファイル自体に手動でログインします。これはWebドライバーによって開かれ、閉じることによってゲインを実行します。

最後に、ページはログイン済みとして表示されます。したがって、Javaである可能性があります。これが、C#での試行に役立つことを願っています。

13
murali selenium