Я использую WebdriverIO с Typescript для автоматизации приложения Adnroid. Сценарий:
Это то, что я сделал. Но это не работает. Так может ли кто-нибудь указать мне, что я сделал неправильно здесь?
Спасибо!!
обучение.тс
import BaseAppScreen from "./base-app.screen";
const SELECTORS = {
Training_Card_Session_Name: (`~trainingItemTitle0`), // This is the one dynamically changing
};
export default class TrainingScreen extends BaseAppScreen{
constructor() {
super();
$(SELECTORS.Training_Card_Session_Name).waitForDisplayed();
}
getSessionNameOfTrainingCard(): string{
var trainingSessionName = $(SELECTORS.Training_Card_Session_Name).getText();
return trainingSessionName; // Here I want to retrive the getText value and store it in a variable to be called later.
}
}
обучение.спец.тс
import TrainingScreen from '../screenobjects/training.screen';
describe('Training Sessions', () => {
let trainingScreen: TrainingScreen;
let trainingSessionName: string;
beforeAll(() => {
loginScreen = new LoginScreen();
});
it(`Select a training Card`, () => {
trainingScreen.getSessionNameOfTrainingCard();
expect(trainingScreen.getSessionHeaderTitle()).toEqual(trainingSessionName);; // this is where I need to assert the previously stored text
});
});
То, что я сделал выше, правильно.
В training.spec.ts нет необходимости вызывать переменную внутри утверждения toEqual. trainingScreen.getSessionHeaderTitle(), он сам сохраняет значение возвращаемого текста внутри переменной trainingSessionName. Следовательно, можно утверждать, что оно равно фактическому названию заголовка.
то есть
expect(trainingScreen.getSessionHeaderTitle()).toEqual('TRAINING'); // The title TRAINING is a static value.