runOnAndroid/runOnIOS blocks are stuck after upgrading CodeCept from 3.4.1 to 3.5.15 and Appium From 1 to 2.
kiran-yara opened this issue · comments
What are you trying to achieve?
We recently upgraded from 3.4.1 to 3.5.15 and from Appium 1 to Appium 2.
What do you get instead?
After the upgrade our scripts started failing inside runOnAndroid/runOnIOS. Failing as in scripts are stuck and dont proceed after default timeout Broswerstack execution is auto killed and scripts stay stuck.
Please note if I revert back to 3.4.1 and Appium 1 it works as expected
Console output if related.
Not Applicable as no output is getting printed
I.runOnAndroid(() => {
I.waitForElement('Invalid phone number, please try again', 120)
I.seeElement('Invalid phone number, please try again')
});
I.runOnIOS(() => {
I.waitForElement('Incorrect number Please try again', 120)
I.seeElement('Incorrect number Please try again')
});
Details
- CodeceptJS version: 3.5.15
- NodeJS Version: v16.15.1
- Operating System: ANdroid/iOS/Mac Ventura 13
- webdriverio: 8.32.0
- Configuration file:
exports.config = {
tests: testPath,
output: '../output',
timeout: 10000,
helpers: {
Appium: {
appiumV2: true,
host: "hub-cloud.browserstack.com",
port: 4444,
user: process.env.YC_BS_USER,
key: process.env.YC_BS_KEY,
platform : "android",
desiredCapabilities: {
"platformName" : "android",
"platformVersion" : "10.0",
"deviceName" : "OnePlus 8",
"app" : "bs://XXXXXX",
'bstack:options' : {
userName : process.env.YC_BS_USER,
accessKey : process.env.YC_BS_KEY,
"appiumVersion":"2.4.1",
"projectName" : "YaraConnect",
}
}
},
BrowserStackAppAutomate: {
require: "../tests/helpers/browserStackAppAutomateHelper.js",
user: process.env.YC_BS_USER,
key: process.env.YC_BS_KEY,
},
AppiumHelper: {
require: "../tests/helpers/appiumHelper.js",
},
REST: {},
DbHelper: {
require: "../tests/helpers/dbConnectHelper.js"
},
AllureDebugHelper: {
require: '../tests/helpers/AllureDebugHelper.js',
}
},
include: pageObjects,
bootstrap: null,
mocha: {},
name: 'yc-global-e2e',
plugins: {
pauseOnFail: {},
retryFailedStep: {
enabled: true
},
screenshotOnFail: {
enabled: true
},
tryTo: {
enabled: true
},
allure: {
outputDir:'allure-results',
enabled: true,
require: '@codeceptjs/allure-legacy',
}
}
}
I have encountered the same issue when upgrading codeceptjs to the latest version (from 3.4.1 to currently latest @3.6.2). This is a very critical bug that needs to be fixed as older versions of Codeceptjs do no contain the fix for touch/perform actions. This way, I have to choose between runOnIOS / runOnAndroid function OR touch/perform actions which are both very needed. Please fix this issue 🙏