51Testing软件测试论坛
标题: 定义类与方法执行报错 [打印本页]
作者: ysgeek 时间: 2019-5-23 14:03
标题: 定义类与方法执行报错
定义类与方法,执行时报“TypeError: test_wxTicket() missing 1 required positional argument: 'driver'”
但不定义类和方法时,执行是OK的
在学课程
佛系玩转APP自动化测试企业级任务
作者: 学掌门网校 时间: 2019-5-23 14:28
在面向对象中同一个类不同方法要公用同一个参数的话,在参数定义的前面都要加self。例如:
class spider_Vbugtags:
def __init__(self):
a=10
def test_case1(self):
print(a)
这个代码就是错误的,要么就是定义成self.a,要么就是传参数a到test_case1方法中,如下:
解决方法1:
class spider_Vbugtags:
def __init__(self):
self.a=10
def test_case1(self):
print(self.a)
解决方法2:
class spider_Vbugtags:
def __init__(self):
a=10
def test_case1(self,a):
print(a)
if __name__=='__main__':
spobj=spider_Vbugtags()
spobj.test_case1(10)
上传的代码文件中,关于属性的定义不能在main调用的时候写,这个是不正确的。要在类方法中写,在初始化方法中
driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)
改为self.driver=....
后面的方法中所有使用driver都改为self.driver
如果你要使用传参的方式,那就需要把init方法中的driver对象当成返回值返回,然后在调用其他方法时才能传入
个人建议你先用self.driver,后续可以试着用传参的方法
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) |
Powered by Discuz! X3.2 |