javascript - 量角器中嵌套承诺的返回元素如何
问题描述
我在量角器中创建了以下函数:
function getChildElementByText(parentElement, tagName, textToSearch)
{
return parentElement.all(by.tagName(tagName))
.then((items) => {
items.map( item => {
item.getText().then(text => {
if (text === textToSearch){
return item;
}
});
});
});
}
获取<option>
元素的元素的示例<select>
:
let myitem = selectorHelpers.getChildElementByText(clientIdSelect, 'option', 'ExampleText');
myitem.click();
这给了我以下错误:
Failed: myitem.click is not a function
我需要该函数返回与文本条件匹配的项目,然后单击该元素,如上例所示。
解决方案
使用map
获取单个元素可能不是最好的方法。map
根据每个项目的返回值返回一个新数组。
考虑使用一个for...or
甚至是经典for
循环来遍历每个项目,并在继续下一个项目之前async / await
等待每个项目解决。item.getText()
然后如果等待的结果等于textToSearch
返回item
对象。否则null
循环后返回。
function getChildElementByText(parentElement, tagName, textToSearch) {
return parentElement.all(by.tagName(tagName))
.then(async items => {
for (const item of items) {
const text = await item.getText();
if (text === textToSearch) {
return item;
}
}
return null;
});
}
推荐阅读
- javascript - 未处理的拒绝(TypeError):无法读取未定义的属性“当前”
- python - 如何将 JSON SList 转换为 pandas 数据框?
- java - 如何在 Spring Boot 中重新加载/重新初始化 Bean?
- javascript - Angular - 如何在模板中接收事件时添加类
- r - 在 R 中绘制行与列
- vue.js - 如何在渲染组件之前加载 Vuex 数据?
- firebase - React Native Crash - Gray Screen - App Center build only - com.facebook.react.bridge.CatalystInstanceImpl.jniLoadScriptFromAssets(Native Method)
- excel - Excel VBA“编译错误预期语句结束”(括号问题)
- python - 数据库表中的 wy 未创建并显示此错误 在 Django 中无效的外键
- python - `sklearn` 在有 eval 数据集时询问