python 封裝調用之class 、_init__、self搞懂了
參考:https://www.cnblogs.com/yulongzhou/p/10654185.html
__init__方法
其前面帶有”__“,故此函數被聲明爲私有方法,不可類外調用。此方法可以帶參數初始化
1.
寫了模塊searchpage.py:
# -*- coding:utf-8 -*- class search: def __init__ ( self, driver ): self.driver = driver def search_contacts( self, name ) : serch="com.tencent.mm:id/r_" conte="com.tencent.mm:id/m7" resus="com.tencent.mm:id/s5" #self.driver=driver self.driver.find_element_by_id(serch).click() self.driver.find_element_by_id(conte).send_keys(name) assert len(self.driver.find_elements_by_id(resus))>=1
2.把searchpage.py模塊導入,並在TESTCASES.py中執行:
searchpage.py、TESTCASES.py在同一目錄下(https://www.cnblogs.com/deliaries/p/11315915.html)
import searchpage #在TESTCASES.py腳本導入模塊
@pytest.mark.parametrize("name",["han","ha"]) def test_sercha(self,name): search=searchpage.search(self.driver) search.search_contacts(name)
每行代碼解讀:
(1)@pytest.mark.parametrize("name",["han","ha"]) '''這是PYTEST裝飾器,給裝飾的test_sercha函數傳參,相當於2組測試數據,第一組是 name="han",第二組是name="ha"。''' (2)def test_sercha(self,name): (2-1)search=searchpage.search(self.driver) '''類的實例化,傳參:這個CLASS參數self.driver是給CLASS的私有方法__init__ ( self, driver )調用''' (2-2)search.search_contacts(name) '''這個是調用searchpage類裏面的search_contacts方法,傳參爲name變量'''