async function t(e){
return e;
}
async getByResourceId(id, wait= 5000){
const elm = this.driver.$('android=new UiSelector().resourceId("'+id+'")');
const telm = await t(elm);
}
Я пытаюсь автоматизировать приложение для Android с помощью appium и webdriverio, и у меня очень странная ошибка.Я использую функцию $ (это происходит и с функцией элемента) webdriver, чтобы найти элемент, который я затем передаю функции t.Когда я получаю его обратно, это другой объект.
Я попытался добавить задержку между первой и второй строкой в getByResourceId, чтобы убедиться, что это не ошибка синхронизации:
async getByResourceId(id, wait= 5000){
const elm = this.driver.$('android=new UiSelector().resourceId("'+id+'")');
await _setTimeout(5000);
//elm still OK (aka elm.click works)
const telm = await t(elm);
//telm is broken (aka getting TypeError: telm.click is not a function)
}
Это не сработало.То, что ломает вяз, это возвращение обещания.У кого-нибудь есть идеи, как заставить это работать?
edit: Я нашел этот https://stackoverflow.com/a/47176108/10816010 очень полезным.по-видимому, мне пришлось использовать синхронный подход (используя тестер WDIO) и позволить тестировщику WDIO управлять синхронизацией, а не использовать асинхронное ожидание, чтобы получить требуемую функциональность.
edit 2: это не относится к версии 5 webdriverio