2016-07-22 19 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に:

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

の場合:

#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 

これはエラーで失敗します#openのコードを各テストの下に個別に置くと、すべて正常に動作します。ブラウザを一度開くだけで、同じブラウザセッションでファイル内のすべてのテストを実行できますか?

答えて

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() デフtest_one: mylogin = Loginpage(' C:\オートメーション\ Common_Objects.xlsx ') ドライバ= mylogin.login( "AutoSMS"、 "Users") – ChrisG29

関連する問題