TestCafe - 获取下拉列表中的属性值

TestCafe - Get value of attribute in a dropdown list

有一个带有过滤按钮的搜索栏。单击相同的子菜单(下拉菜单)将显示。 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]

有什么想法吗?

您需要添加 'await' 关键字。例如:

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

请参阅“Access Page Element Properties”主题以查找此注释:

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.