2016-07-22 48 views
0

我希望能夠在同一個測試文件中使用同一瀏覽器會話進行多個測試。使用相同的瀏覽器會話進行多個Selenium Pytest測試

我有一個類設置爲登錄:

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() 

我一直在關閉瀏覽器會話,然後打開每測試一個新的,但我試圖改變它,這樣的結構看起來像(在所謂的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 

這失敗,出現錯誤:

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

如果我將代碼分別放在每個測試下的#打開瀏覽器,然後一切正常。是否有可能只打開瀏覽器一次,並讓文件中的所有測試都在同一瀏覽器會話中工作?

回答

0

你可以通過驅動程序對象的函數調用:我已經使用的驅動程序

#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

(對不起,我應該包括,在我原來的職位): 類Loginpage(): URL = 「HTTP:// appsv01:8084 /#/」 高清__init __(自我,工作簿): self.workbook =工作簿 高清登錄(自我,VALUE_NAME,工作表): #Open一個新的Chrome窗口並最大化 driver = webdriver.Chrome('C:/ temp/ch romedriver.exe ') driver.get( 「HTTP:// appsv01:8084」) driver.maximize_window() DEF test_one: mylogin = Loginpage(' C:\自動化\ Common_Objects.xlsx') 驅動= mylogin.login(「AutoSMS」,「用戶」) – ChrisG29

相關問題