如何启用cookie在phantomjsdriverseleniumc#?

这是我的代码 –

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; 

基本上问题是,我无法login到我的testing应用程序,因为我得到一个错误说 – “您的浏览器设置为阻止cookies”,我试过一切,但我似乎无法得到解决scheme….我该怎么办? 请帮助我在这里。让我知道是否有一些细节丢失。

您必须等待加载页面,然后设置cookie:

 driver.Navigate().GoToUrl(SeleniumConfiguration.Current.BaseURL); //Wait page loaded cookieJar.AddCookie(new Cookie("x", "12345")); 

试试这个解决scheme: 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 

你可以尝试下面的步骤

1)在Firefox或Chrome浏览器上创build一个用户configuration文件。 2)通过浏览器设置选项确认“接受cookies”选项已启用。 3)通过selenium加载您的configuration文件。

这样做将确保启用cookie选项为ON,并且您的会话也将保存在浏览器caching中。

为铬

 System.setProperty("webdriver.chrome.driver", "browser/chromedriverlinux"); ChromeOptions options = new ChromeOptions(); options.addArguments("--user-data-dir=/home/rohit/.config/google-chrome/Profile 1"); options.addArguments("--start-maximized"); WebDriver driver = new ChromeDriver(options); 

对于Firefox

 ProfilesIni profile = new ProfilesIni(); FirefoxProfile ffprofile = profile.getProfile("ROHIT"); WebDriver driver = new FirefoxDriver(ffprofile); 

要在firefox中创buildconfiguration文件,请在terminal firefox -p中尝试下面的命令