PHP webdriver - Wie erzwinge ich einen neuen Test, um ein anderes Profil zu verwenden?

8

Ich führe mehrere Tests in einem Selenium-Grid durch, das mehrere Knoten enthält, unter Verwendung eines dynamisch erstellten Firefox-Profils wie folgt:

%Vor%

Aber jedes Mal, wenn der Hub einen Knoten mit einer zuvor ausgeführten Firefox-Instanz aufruft, verwendet er dasselbe Profil und löscht die zuvor ausgeführte Sitzung. Dies geschieht, weil die Anwendung dieselben Cookies für Authentifizierungszwecke verwendet.

Gibt es eine Möglichkeit, selen grid zu zwingen, ein neues Profil im laufenden Betrieb zu erstellen und eine völlig neue firefox-Instanz zu erhalten?

Einige weitere Informationen

Um den Hub zu starten, verwende ich momentan die folgende Befehlszeile

%Vor%

Und um Knoten zu starten, benutze ich

%Vor%

Das Seltsame ist, dass wenn ich einen eigenständigen Selenium-Server aufstelle, er mehrere Firefox-Instanzen erstellt, wie ich es gerne wäre ...

    
Omar Alves 01.03.2016, 02:09
quelle

2 Antworten

1

Sie könnten auch einen alternativen, leichten Selenersatz mit dem Namen Solenoid ausprobieren. Der Hauptunterschied besteht darin, dass jeder Browser in einem neuen Container Docker gestartet wird. Dies garantiert, dass Ihre Sitzungen vollständig isoliert sind.

    
vania-pooh 27.05.2017 08:30
quelle
0
  

Ich führe mehrere Tests über ein Selenium-Gitter mit einem   mehrere Knoten, mit einem dynamisch erstellten Firefox-Profil, wie dies

Schützen Sie Ihre Variablen? Es ist so, als hätten Sie eine Klasseninstanz wiederverwendet. spl_object_hash() könnte Ihnen hier helfen. Es

  

gibt eine eindeutige ID für das Objekt zurück

was für eine gegebene Instanz immer gleich ist.

PS:

Versuchen Sie, sie zu trennen & amp; Benutze Unittests / benutze die in PHPUnit /:

verfügbaren Fixtures

%Vor%

In diesem Beispiel wird nicht der gleiche $ -Treiber zwischen FirefoxTest und XXXTest verwendet, aber das wird empfohlen, da Sie für jeden Test eine saubere Liste wünschen.

Aber alle Tests in FirefoxTest teilen denselben Treiber. Die Ausführungsreihenfolge von Tests bei "phpunit-Tests" lautet:     setUpBeforeClass ()

%Vor%

ein bisschen mehr über Armaturen

    
Valeriy Solovyov 10.03.2016 08:03
quelle

Tags und Links