2015-08-12 21 views
34

Ecco la mia code-Come abilitare i cookie in phantomjsdriver selenio 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; 

In sostanza il problema è che io non sono in grado di accedere al mio applicazione di test perché ottengo un errore che dice - "Il tuo browser è impostato per bloccare i cookie", ho provato di tutto ma proprio non riesco a ottenere la soluzione per questo .... cosa dovrei fare? Per favore aiutatemi qui. Fammi sapere se manca qualche dettaglio.

+8

cookie sono attivati ​​per impostazione predefinita. C'è probabilmente un altro problema. –

+1

Questo ha quasi certamente nulla a che fare con le impostazioni dei cookie in PhantomJS. È un problema SSL o un problema JavaScript. Qual è il sito che stai cercando di visitare e qual è la tua versione di PhantomJS? –

+0

Suppongo che sia l'ultima versione. Non sono sicuro di poter condividere qui il nome del sito ... – Prateek

risposta

1

è necessario attendere che la pagina è stata caricata e quindi impostare dei cookie:

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

provare questa soluzione: 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

È possibile provare i passaggi qui sotto

1) creare un profilo utente su Firefox o nel browser Chrome. 2) Confermare che l'opzione "accetta i cookie" è abilitata andando all'opzione delle impostazioni del browser. 3) Carica il tuo profilo tramite selenio.

In questo modo si accerterà che l'opzione di abilitazione dei cookie sia attivata e anche le sessioni verranno salvate nella cache del browser.

per Chrome

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

Per Firefox

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

Per creare il profilo in Firefox tenta di sotto comando nel terminale firefox -p

+0

PhantomJSDriver, non Chrome – Toolkit