如何在webdriverio中结合appium、flutter、browserstack、ios和cucumber重新加载session

问题描述 投票:0回答:1

我试图在执行功能文件期间在浏览器堆栈中重新加载我的驱动程序会话。 我想实现这一目标,因为我正在测试一些登录场景,如果每个场景都可以重新开始,那将会很有帮助。

我尝试了多种解决方案,下面将提到,但没有一个有效。

//app starts but cannot interact with device
//[0-0] 2023-11-07T10:37:33.182Z ERROR webdriver: Request failed with status 500 due to unknown error: An unknown server-side error occurred while processing the command.
Original error: {}
async function fullResetOnIos(){
    await driver.switchContext('NATIVE_APP');
    await driver.terminateApp('nl.abp.app');
    await driver.removeApp('nl.abp.app');
    await driver.installApp(appIos); // 'browserstack.midSessionInstallApps' required
    await driver.launchApp(); //deprecated in logs
    await driver.switchContext('FLUTTER');
}
// app starts but cannot interact with device
/[0-0] 2023-10-31T08:35:25.289Z DEBUG webdriver: request failed due to status 13
//[0-0] 2023-10-31T08:35:25.290Z WARN webdriver: Request failed with status 200 due to unknown error
// [0-0] 2023-10-31T08:35:08.060Z ERROR webdriver: Request failed with status 200 due to WebDriver Error: unknown error
async function closeAndLaunchApp() {
    await driver.switchContext('NATIVE_APP');
    await driver.closeApp();
    await driver.launchApp();
    await driver.switchContext('FLUTTER');
}
// Very inconsistent, sometimes test execution is green, sometimes not because of timeouts
// When a test fails in a scenario, the last scenario will also fail in browserstack
async function reloadSession() {
    await driver.reloadSession();
}
//app under test stops functioning, caches are not cleared on iOS device
async function terminateAndActivate() {
    await driver.switchContext('NATIVE_APP');
    await driver.terminateApp('nl.abp.app');
    await driver.activateApp('nl.abp.app');
    await driver.switchContext('FLUTTER');
}

还有我尝试过的更多选择。有人以前遇到过这个问题并且能够给出解决方案吗?

flutter cucumber appium webdriver-io browserstack
1个回答
0
投票

你需要

        await driver.execute('flutter:connectObservatoryWsUrl', 20000);
        await driver.execute('flutter:checkHealth');

将上下文切换到 Flutter 后

© www.soinside.com 2019 - 2024. All rights reserved.