2016-03-21 2 views
0

I-Code hier folgende haben:Rum mehrere Testfälle Sitzung Python Selen WebDriver auf der gleichen Web-Browser

import unittest 
import time 
from selenium import webdriver 
from selenium.webdriver.common.by import By 
from selenium.common.exceptions import NoSuchElementException 
from selenium.common.exceptions import NoAlertPresentException 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 
from selenium.common.exceptions import TimeoutException 

class MyTest1(unittest.TestCase): 
    @classmethod 
    def setUpClass(cls): 
     cls.driver = webdriver.Firefox() 
     driver = cls.driver 
     driver.get("https://somewebsite.com") 
     print "login the website" 

    def test_UI_login(self): 
     driver = self.driver 
     print "test some things here" 

    def test_duplicate_client(self): 
     driver = self.driver 
     print "test some things here" 


    def tearDown(cls): 
     cls.driver.close() 


if __name__ == '__main__': 
    unittest.main() 

Problem ich bin vor ist, Nach dem ersten Funktion test_UI_login, schließt die firefox-Instanz. Wie kann ich mehrere Testfälle von derselben Firefox-Instanz im Unitest mit Selenium ausführen?

+0

Vielleicht würde es helfen, wenn Sie auch tearDown mit '@ classmethod' kommentieren würden? – Frank

+0

Es hat nicht funktioniert, wenn wir tearDown mit @ classmethod –

Antwort

0

angegeben Wie in this SO-answer

müssen Sie den Treiber in __init__ initialisieren.

+0

annotieren Ich habe versucht, wie Sie vorgeschlagen. Aber, ich bin unten Fehler bekommen, Typeerror __init __() nimmt ein Positions Argument aber 2 wurden gegeben Klasse MyTest1 (unittest.TestCase): def __init __ (self): self.driver = webdriver.Firefox() Treiber = self.driver –

+0

Sie müssen '__init __ (cls, tests) erklären' Sorry für das Missverständnis, es ist eine Weile her, seit ich es benutzt habe. Es scheint, dass Selen in den neuesten Versionen einen zusätzlichen Parameter hinzufügt. – Frank

+0

Versucht die Methode wie Sie vorgeschlagen (def __init __ (cls, Tests)), bemerkte unten Fehler ** 'MyTest1' Objekt hat kein Attribut '_testMethodName' ** –