Цикл TestCafe по элементам и проверка, существует ли класс в наборе

#loops #testing #automated-tests #selector #testcafe

#циклы #тестирование #автоматизированные тесты #селектор #testcafe

Вопрос:

У меня есть таблица со столбцом значков. У каждого значка есть класс «test», а затем «test» [некоторый рейтинг]. Рейтинг может быть A, B, C, XX, YY. Я хотел бы выбрать группу значков и перебрать их, выделить последний класс (тот, у которого есть рейтинг), а затем ожидать, что мой набор classConsts содержит рассматриваемый класс. Я провел кучу исследований, но могу найти только примеры взаимодействия с каждым из элементов, я не уверен, что я делаю неправильно, пытаясь вместо этого проверить классы для каждого. Любая помощь приветствуется, спасибо.

Приведенный ниже код взрывается, когда я вызываю mrArray.nth, говоря, что это не функция (извините, это немного запутанно, пришлось изменить имена некоторых переменных)

 test('Sers are verified', async t => {
    const IconArr = Selector('#testtable .test');
    var count = await IconArr().count;
    var myArray = await IconArr();

    const classConsts = ["testClassA", "testClassB", "testClassC", "testClassXX", "testClassYY"]

    let mySet = new Set(classConsts);

    for(let i = 1; i <= count; i  ){
        console.log(mySet.has(myArray.nth(i).classNames.pop()));
    };
});
  

Ответ №1:

myArray больше не является объектом селектора после выполнения его как асинхронной функции. Пожалуйста, обратитесь к следующей справочной статье для получения дополнительной информации DOMNodeState.

Кроме того, индекс начинается с 0, а не с 1. Ваш код может выглядеть следующим образом:

 for(let i = 0; i < count; i  ){
   let classes = await IconArr().nth(i).classNames;
   console.log(mySet.has(classes.pop()));
};
  

Вы всегда можете отладить свои тестовые примеры, чтобы увидеть, что пошло не так:

https://devexpress.github.io/testcafe/documentation/recipes/debugging/chrome-dev-tools.html