Ich bin ein Problem beheben, das ich mit Selenium und Python 3.5 habe. Ich versuche das unitest-Framework in meine Automatisierung zu implementieren, aber jedes Mal, wenn ich eine Testsuite erstelle, öffnet der Test mehrere Browserfenster, bevor ein Testfall tatsächlich ausgeführt wird.Python: Unit Test öffnen mehrere Browser-Fenster
Durch Prozess der Beseitigung, habe ich es auf diesem Teil des Codes gekocht:
def primary():
primary = unittest.TestSuite()
primary.addTest(unittest.makeSuite(PrimaryMethods, 'setUp'))
primary.addTest(unittest.makeSuite(PrimaryMethods, 'test_ModuleLoop_header'))
primary.addTest(unittest.makeSuite(PrimaryMethods, 'test_ModuleLoop_nonheader'))
primary.addTest(unittest.makeSuite(PrimaryMethods, 'tearDown'))
return primary
if __name__ == '__main__':
TEST_RUNNER = unittest.TextTestRunner()
TEST_SUITE = primary()
TEST_RUNNER.run(primary)
Wenn ich entfernen Sie den Abschnitt, der die Testsuite und einfach verwenden unittest.main() in der if-Anweisung erstellt Es läuft gut mit nur einem Browserfenster. Ich weiß jedoch, dass meine Testfälle immer komplexer werden und ich Test-Suites verwenden möchte. Hat jemand eine Idee, was dort würde das Setup 4 Mal von selbst laufen lassen, bevor es zu den Testfällen weitergeht?
Hier ist meine Auf- und Abbau Sektionen:
def setUp(self):
driver = webdriver.Firefox
init() #for colorama
def tearDown(self):
driver = webdriver.Firefox
driver.close()
driver.quit()
ich den Code herausnahm, die Arbeit wurde und modifiziert es def primäre enthalten zurück() und die TEST_RUNNER.run (primär) Code. Ich habe den init() -Aufruf aus dem setUp-Abschnitt entfernt, so dass nichts anderes als das Laden des Browsers in setUp ist. Wenn ich von Breakpoints im Skript platzieren, das ist das Verhalten, das ich sehe:
- def setUp (Selbst-) sofort beim Start genannt
- def setUp (Selbst-) genannt wieder
- wenn Name == ' Haupt 'und def primären()
- Treiber genannt = webdriver.Firefox genannt wird
- erste Browser öffnet
- driver = webdriver.F Irefox wird ein zweites Mal aufgerufen. Die beiden Testfälle und der TearDown wurden nicht berührt.
- Zweiter Browser öffnet
- tearDown (Selbst) heißt.
- Zweiter Browser ist geschlossen
- driver = webdriver.Firefox wird ein drittes Mal aufgerufen.
- Third Browser öffnet
- tearDown (Selbst-) wird
- Third Browser schließt genannt
- driver = webdriver.Firefox wird ein viertes Mal aufgerufen.
- Der erste Testfall wird schließlich
Beitrag der Rest des Codes, oder zumindest genug relevanten Kontext. Sie erwähnen das Problem ist "Starten von Browsern", wo ist dieser Code? –
Ich habe mein Setup zur Hauptfrage hinzugefügt. – tinneko
Ich schlage vor, ein vollständiges Beispiel für ausführbaren Code zu veröffentlichen, der das Problem und nicht Teile davon anzeigt –