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变量'''