51Testing软件测试论坛

标题: 定义类与方法执行报错 [打印本页]

作者: ysgeek    时间: 2019-5-23 14:03
标题: 定义类与方法执行报错
定义类与方法,执行时报“TypeError: test_wxTicket() missing 1 required positional argument: 'driver'”
但不定义类和方法时,执行是OK的


在学课程
佛系玩转APP自动化测试企业级任务
http://www.atstudy.com/course/1609


作者: 学掌门网校    时间: 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