2012-04-26 20 views
11

Jedes Mal wenn ich meinen Test starte, logge ich mich zuerst ein und dann bekomme ich die gewünschte Seite. Wenn dieser Test oft ausgeführt wird, dauert der Vorgang viel Zeit.So senden Sie Cookies mit Selen-Webdriver?

Wie kann ich den Anmeldevorgang übergeben?

Verwenden von Chrome und Firefox-Treibern, Java-Sprache.

Antwort

17

erstellen Cookies, um die Java API wie folgt verwendet:

Cookie ck = new Cookie("name", "value"); 
driver.manage().addCookie(ck); 

Cookies Erstellen Sie die Python API wie folgt verwendet:

driver.add_cookie({'name': 'foo', 'value': 'bar'}) 
+0

Persönlich erhalte ich ** org.openqa.selenium.UnableToSetCookieException ** Kann Cookie nicht setzen: keine URL hat wurde bereits geladen – KoichiSenada

+0

Das gleiche Problem erfüllt, eine Möglichkeit, es zu lösen? – linpingta

+0

Zuerst müssen Sie zu einer Seite navigieren, bevor Sie Cookies setzen (ich weiß, es ist seltsam) – xtian

6
driver.manage().addCookie(); 

manage()

The Options interface with Cookies

und Selen-Implementierung von Cookie

+1

Java-Code könnte wie folgt sein: Cookie ck = neu Cookie ("name", "value"); driver.manage(). AddCookie (ck); –

+0

Links sind alle tot –

6

Für diejenigen, die detailliertere Informationen über Cookie neben name und value Sie können festlegen müssen:

Cookie cookie = new Cookie.Builder("name", "value") 
    .domain(".mydomain.com") 
    .expiresOn(new Date(2015, 10, 28)) 
    .isHttpOnly(true) 
    .isSecure(false) 
    .path("/mypath") 
    .build(); 

driver.manage().addCookie(cookie); 
1

In meinem Fall der folgende Code funktioniert fein-

String token = tokenValue.substring(7); 
    Cookie name = new Cookie("Token", token); 
    driver.manage().addCookie(name);