2009-07-14 13 views
1

Kann ein Browser-Cookie mit Selen, speziell RC, deaktiviert werden? Wenn ja, wie lautet der API-Aufruf oder die Sequenz von Anrufen, um dies zu ermöglichen? Es wird eine Funktion getestet, bei der das Verhalten überprüft werden muss, wenn Cookies aktiviert oder deaktiviert werden. DankeSelenium RC - Browser-Cookie deaktivieren

+0

Eine Sache, die ich versuchte, ist ein benutzerdefiniertes FF3-Profil erstellen, das Cookie ausgeschaltet hat und eines angeschaltet hat. Jedes Mal, wenn ich Selen starte, zeige ich es auf eines der Profile, je nachdem, welcher Fall getestet wird. Es ist eine Idee, aber noch nicht herausgefunden, wie Selen auf diese benutzerdefinierten Profile zu starten. – Afamee

Antwort

1

Wie im Kommentar angegeben. Wenn Sie FF verwenden, können Sie das zu verwendende Profil angeben.

Die Art und Weise, es zu tun es die browserStartCommand so angeben (3. Argument des Konstruktors DefaultSelenium) etwas ähnlich zu:

*custom "C:/Program Files/Mozilla Firefox/firefox.exe" -no-remote -profile "C:/Some/Path/To/Mozilla/Firefox/Profiles/selenium" 

Und dieses Profil können Sie die Cookies deaktiviert haben.

+0

das ist nicht in Selen 2 Webdriver verwendbar – Adaptabi

0

Eine andere Idee (ich habe das nicht versucht) wäre, einen speziellen Proxy zwischen dem Selenium RC-Client und der getesteten Webanwendung zu verwenden. Der Proxy könnte die Cookies nach Aufforderung filtern.

Es gibt einige Proxy-Implementierungen für die Entwicklung, das Debuggen und das Tracen von Rollen. Ich bin mir ziemlich sicher, dass Sie eines mit der Funktion zum Blockieren von Cookies finden können.

EDIT: Diese Lösung hat den Vorteil, browserunabhängig zu sein.

1

Wenn Sie Firefox verwenden, gibt es einen speziellen Befehl, um auf die firefox Vorlage zuzugreifen. Sie verwenden

-firefoxProfileTemplate "path to the profile" 

als here beschrieben. Ich würde die verschiedenen Profile für Cookies ein- und ausschalten, um sie besser kontrollieren zu können.

2

Es gibt einen einfacheren Weg, wenn Sie nur ein Standardprofil verwenden, wenn Sie Selenium 2.x verwenden.

FirefoxProfile profile=new FirefoxProfile(); 
profile.setPreference("network.cookie.cookieBehavior",2); 
Verwandte Themen