如何在不使用会话ID的情况下退出appium驱动程序并运行另一个测试为空错误

问题描述

我使用browserstack。在每次测试之前,我都会创建一个新的驱动程序。在每种情况下,我都使用driver.quit(),因为我想关闭会话。

我有多个测试用例(例如,两个方案文件)要运行时,我会收到一条消息,会话ID为空。调用quit()后使用WebDriver吗?

当我不使用driver.quit()或我使用driver.closeApp()时,第一个会话花费的时间太长,即使第二个会话开始,我也无法使用它(我的意思是我无法单击元素) 。我由junit跑步者进行测试。

每次测试后是否有可能退出驱动程序并运行另一个没有该错误的驱动程序?

private static AppiumDriver<MobileElement> driver;

@Before
public void before() {
    driver = new AndroidDriver<>(new URL("URL"),capabilities);
}

public static AndroidDriver<MobileElement> getDriver() {
    return (AndroidDriver<MobileElement>) driver;
}

@After
public void after() {
   if ( driver == null ) {
       driver.quit();
       driver = null;
   }
}

解决方法

如果您遇到此问题,请仔细阅读BrowserStack文档以获取Junit演示代码here,这将帮助您解决问题。 我可以看到您提到的代码“ Before”和“ After”,而不是“ BeforeEach” /“ AfterEach”。

请尝试一下