testing - TestCafe - 获取下拉列表中的属性值
问题描述
有一个带有过滤按钮的搜索栏。单击相同的子菜单(下拉菜单)将显示。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]
任何想法?
解决方案
您需要添加“等待”关键字。例如:
for (let i = 0; i < 6; i++) {
console.log("value:" + await tab.child('li').nth(i).innerText);
}
请参阅“访问页面元素属性”主题以查找此注释:
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.
推荐阅读
- kubernetes - Prometheus 指标配置
- amazon-web-services - 我有一个角色可以完全访问 SQS,但我仍然无法向 SQS 发送消息
- javascript - 从字符串创建嵌套数组
- javascript - 例如,当我选择明矾时,它会存储它,然后当我选择温和金属时,它会显示两个值(在完成所有计算之后)
- python - 使用 Python/Selenium 抓取文本并将 CSS 格式转换为 Markdown
- unit-testing - 如何在嵌套 HttpService 上用玩笑测试 retryWhen
- c# - 在 ASP.Net 页面后面的代码中,空日期显示为 01/01/0001
- vue.js - 如何使用 linter 在 vue 中强制执行脚本、模板和样式标签的顺序
- python - 对于 BFS,将访问变量设置为 bool 列表是否比设置更快?
- javascript - reactjs 中的 main.bundle.js 太大