TestCafe - получить значение атрибута в раскрывающемся списке - PullRequest
0 голосов
/ 07 марта 2020

Есть панель поиска с кнопкой для фильтрации. При нажатии на то же подменю (выпадающий) отображается. HTML выглядит так:

<ul >
  <li data-value"svalue1">
     <svg>.... </svg>
     <p> Value1 </p>
  </li>
  <li data-value"svalue2">
     <svg> ....</svg>
     <p> Value2 </p>
  </li>
  <li data-value"svalue3">
     <svg> </svg>
     <p> Value3 </p>
  </li>

Мне нужно получить значения опций в виде массива и сравнить. Я могу утверждать одно значение, но не могу сохранить его в массиве, чтобы сравнить все вместе.

var tab = Selector('ul');
-
-
.expect(tab.child('li').nth(3).innerText)
            .eql('Value3', 'The value is not correct');

Но это не работает

for (let i = 0; i < 6; i++) {
                myArray.push(tab.child('li').nth(i).innerText);
                console.log("value:" + tab.child('li').nth(i).innerText);

            }

Prints: value:[object Object]

Есть идеи?

1 Ответ

2 голосов
/ 09 марта 2020

Вам необходимо добавить ключевое слово «await». Например:

for (let i = 0; i < 6; i++) {
   console.log("value:" + await tab.child('li').nth(i).innerText);
}

Обратитесь к ' Свойства элемента страницы доступа ' topi c, чтобы найти это примечание:

Note that selector's property getters and client functions are asynchronous. If you need their resulting value in your code, use the await keyword. However, you can omit await when you pass a selector property or a client function value into an assertion.

...