以下は私のコードです:
case BrowserType.PhantomJS:
var service = PhantomJSDriverService.CreateDefaultService(Path.Combine(_rootPath, @"Packages\"));
var cookieFilePath=Path.Combine(_rootPath, @"Packages\cookie.txt");
if (!File.Exists(cookieFilePath))
File.Create(cookieFilePath);
var phantomjsoptions = new PhantomJSOptions();
driver = new PhantomJSDriver(service,phantomjsoptions);
var cookieJar = driver.Manage().Cookies;
driver.Navigate().GoToUrl(SeleniumConfiguration.Current.BaseURL);
cookieJar.AddCookie(new Cookie("x", "12345"));
return driver;
基本的に問題は、エラーメッセージが表示されてテストアプリケーションにログインできないことです-
「あなたのブラウザはクッキーをブロックするように設定されています」
私はすべてを試しましたが、これに対する解決策を得ることができないようです。
私は何をすべきか?
ここで私を助けてください。
詳細が欠けている場合はお知らせください。
RFC 2109では、IPアドレスを持つURLからのCookieの受け入れを明示的に禁止しています
ほとんどの場合、IPベースのアドレスを介してテストサーバーにアクセスしています。
ある種のDNS/Hostファイルをセットアップして、偽のドメイン名を使用できるようにすることができます。
ページが読み込まれるまで待機してから、Cookieを設定する必要があります。
driver.Navigate().GoToUrl(SeleniumConfiguration.Current.BaseURL);
//Wait page loaded
cookieJar.AddCookie(new Cookie("x", "12345"));
次の解決策を試してください: https://stackoverflow.com/a/30636987
driver.Navigate().GoToUrl(SeleniumConfiguration.Current.BaseURL);//some fake url
driver.Manage().Window.Maximize();
driver.SwitchTo().ActiveElement();
cookieJar.AddCookie(new Cookie("x", "12345"));
driver.Navigate().GoToUrl(SeleniumConfiguration.Current.BaseURL);//cookie exsist