调用appium里的driver.close()或者driver.quit()时一直报错

代码
app模块里封装了driver.quit和driver.close两个方法,然后在testcase的teardown里调用这两个方法

“”"
from appium import webdriver
from HogwartsSDET14.app.page.basepage import BasePage
from HogwartsSDET14.app.page.mainpage import MainPage

class App(BasePage):

def start(self):
    '''
    启动app
    '''
    if self.driver == None:
        # 第一次调用start()方法的时候driver 为None
        caps = {}
        caps["platformName"] = "android"
        caps["deviceName"] = "5eb2803"
        caps["appPackage"] = "com.tencent.wework"
        caps["appActivity"] = ".launch.LaunchSplashActivity"
        caps["noReset"] = "true"
        caps['skipServerInstallation'] = 'true'  # 跳过 uiautomator2 server的安装
        caps['skipDeviceInitialization'] = 'true'  # 跳过设备初始化
        # caps['dontStopAppOnReset'] = 'true'    # 启动之前不停止app
        caps['settings[waitForIdleTimeout]'] = 0
        caps['unicodeKeyboard'] = 'true'
        caps['resetKeyboard']='true'
        caps['automationName'] ='uiautomator2'
        # 与server 建立连接,初始化一个driver 创建session,返回一个sessionid
        self.driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)
    else:
        # launch_app() 这个方法不需要传入任何参数, 会自动启动起来DesireCapa里面定义的activity
        # start_activity(packagename, activityname) 可以启动其它的应用的页面
        self.driver.launch_app()
    self.driver.implicitly_wait(20)
    return self

def restart(self):
    '''
    重启app
    '''
    self.driver.close()
    self.driver.launch_app()
    return self

def stop(self):
    '''
    停止 app
    '''
    print("关闭app")
    self.driver.quit()

“”"
tescaset执行代码
“”"
mport pytest
import yaml

from HogwartsSDET14.app.page.app import App

class TestContact:

def setup_class(self):
    self.app = App()

def teardown_class(self):
    self.app.stop()


@pytest.mark.parametrize('name,gender,phonenum',
                         addcontactdatas)
def test_addcontact(self, name, gender, phonenum):
    print(name, gender, phonenum)

“”"
运行完testcase的代码之后报错如下:
不明白为什么调用这两个方法会报错误呢?

这个就是空指针异常,你看看你的driver啥时候为空了

就是没看不出来啥时候空了 :joy:,看出来了我可能就直接改了,累死了也没看出来,好惨~ !~ :sob:

你用debug调试一下,或者加个日志看看咯

self.app=App().start() 应该是这样吧
代码里start没运行

就是这个原因 :joy:解决了,谢谢~