2016-07-22 4 views
0

Ich möchte die gleiche Browsersitzung für mehrere Tests innerhalb der gleichen Testdatei verwenden können.Verwenden Sie die gleiche Browsersitzung für mehrere Tests mit Selenium Pytest

Ich habe eine Klasse für die Anmeldung ein:

class Loginpage(): 
url="http://appsv01:8084/#/" 

def __init__(self, workbook): 
    self.workbook=workbook 

def login(self,value_Name,worksheet): 
    #Open a new mymobile suite window in Chrome and maximize 
    driver = webdriver.Chrome('C:/temp/chromedriver.exe') 
    driver.get("http://appsv01:8084") 
    driver.maximize_window() 

Ich habe die Browser-Sitzung wurde geschlossen und dann eine neue pro Test zu öffnen, aber ich versuchte, es so zu ändern, dass die Struktur aussieht (in der Datei mit dem Namen test_mytests.py):

#open the browser and log in 
    mylogin=Loginpage('C:\Automation\Common_Objects.xlsx') 
    driver=mylogin.login("AutoSMS", "Users") 

    #perform the first test 
    def test_one(): 
    task1 
    task2 

    #perform the second test 
    def test_two(): 
    task3 
    task4 

Dieser schlägt mit dem Fehler:

E ConnectionRefusedError: [WinError 10061] No connection could be made because the target machine actively refused it 

Wenn Ich lege den Code für #open den Browser unter jeden Test einzeln, dann klappt alles einwandfrei. Ist es möglich, den Browser nur einmal zu öffnen und alle Tests in der Datei in derselben Browsersitzung auszuführen?

Antwort

0

Sie können den Treiber-Objekt übergeben, um die Funktionsaufrufe:

#open the browser 
driver = webdriver.Chrome('C:/temp/chromedriver.exe') 
driver.get("http://appsv01:8084") 
driver.maximize_window() 

#perform the first test 
def test_one(driver): 
    #do something with driver here, e.g. 
    driver.find_element_by_id('test').click() 


#perform the second test 
def test_two(driver): 
    task3 
    task4 

#function calls 
test_one(driver) 
test_two(driver) 

#close driver 
driver.close() 
+0

Ich bin schon den Treiber (sorry, ich hätte in meinem ursprünglichen Beitrag enthalten, dass): Klasse Anmeldeseite(): url = "http: // appsv01: 8084/# /" def __init __ (self, Arbeitsmappe): self.workbook = Arbeitsmappe def Login (self, value_name, Arbeitsblatt): #Entfernen ein neues Fenster in Chrome und maximiere driver = webdriver.Chrome ('C:/temp/ch romedriver.exe ') driver.get ("http: // appsv01: 8084") driver.maximize_window() def test_one: myLogin = Anmeldeseite (' C: \ Automation \ Common_Objects.xlsx ') driver = mylogin.login ("AutoSMS", "Benutzer") – ChrisG29

Verwandte Themen