2015-08-12 18 views
34

Hier ist mein Code-Wie aktiviert man Cookie in Phantomjsdriver Selen C#?

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; 

Grundsätzlich ist das Problem ist, dass ich nicht in der Lage bin in meine Testanwendung anmelden, weil ich einen Fehler zu sagen - „Ihr Browser Cookies gesetzt zu blockieren“, habe ich alles versucht aber ich kann einfach nicht die lösung dafür bekommen .... was soll ich tun? Bitte helfen Sie mir hier. Lassen Sie mich wissen, wenn ein Detail fehlt.

+8

Cookies werden standardmäßig aktiviert. Es gibt wahrscheinlich ein anderes Problem. –

+1

Dies hat fast sicher nichts mit irgendwelchen Cookie-Einstellungen in PhantomJS zu tun. Es ist entweder ein SSL-Problem oder ein JavaScript-Problem. Was ist die Seite, die du besuchen möchtest und was ist deine PhantomJS-Version? –

+0

Es ist die neueste Version, nehme ich an. Ich bin nicht sicher, ob ich den Aufstellungsortnamen hier teilen kann ... – Prateek

Antwort

1

Sie warten müssen, während Seite geladen wurde und dann setzen Cookie:

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

diese Lösung Versuchen: 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 
0

können Sie unten versuchen Schritte

1) ein Benutzerprofil erstellen auf Firefox oder im Chrombrowser. 2) Bestätigen Sie, dass die Option "Cookies akzeptieren" aktiviert ist, indem Sie zu den Browsereinstellungen gehen. 3) Laden Sie Ihr Profil über Selen.

Dadurch wird sichergestellt, dass die Option zum Aktivieren von Cookies aktiviert ist und Ihre Sitzungen auch im Cache des Browsers gespeichert werden.

für Chrom

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); 

Für Firefox

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

So erstellen Profil in Firefox unter Befehl versuchen, in Terminal firefox -p

+0

PhantomJSDriver, nicht Chrome – Toolkit