最近在使用 appium2 编写安卓自动化,appium2 的会话配置中有一项 appium:noReset: 默认为 false,即启动应用默认重置应用状态。 为了不每次启动应用都要重新登陆然后点击各种弹窗,所以这一项我一般设置为 true。 那么问题来了,我初始化 driver 写在一个 fixture 里(代码最下面),我想每次结束一个条用例就会执行这个 fixture 的后置处理 即关闭应用,目的是在执行下一条用例时启动就会在首页(统一初始页面); 但是当 appium:noReset: true 时无论是 quit() 还是 close() 都会失败,好像是因为和 appium:noReset: true 产生冲突,即 noReset: true 不让你重置关闭也不行! ; 当然把 noReset: 设置为 false,倒是可以关闭了,但是下次启动应用直接重置应用了,要中登陆开始执行了!

语言组织得有点乱, 总的来说我的目的是:在不重置的应用的情况下关闭应用, 但是 appium2.0 是必须设置为每次重置应用才能让关闭应用方法生效!

这把我搞的好烦,求各位大佬指点迷津!

@pytest.fixture()
def init_driver(request):
    # 前置
    driver = webdriver.Remote(appium_server_url, options=AppiumOptions().load_capabilities(capabilities))

    yield driver
    # 后置
    driver.close()
    # driver.quit()


↙↙↙阅读原文可查看相关链接,并与作者交流