我想获得用户可以点击的菜单 UI 项目。
不幸的是,isEnabled方法总是true为我的所有项目返回。这就是为什么我尝试另一种方法。我注意到残疾人总是有“ui-state-disabled”类。结果,我可以使用以下功能获取所有禁用的项目:
function getDisabledMenuItems() {
return getCustomGrid().all(by.className('menu-ui')).all(by.className('ui-state-disabled')).all(by.className('menu-item-text'));
}
然后使用以下所有菜单项:
function getAllMenuItems() {
return getCustomGrid().all(by.className('menu-ui')).all(by.className('menu-item-text'));
}
现在我想getDisabledMenuItems从返回的项目中排除返回的项目getAllMenuItems。
问题
排除另一个 ElementArrayFinder 中存在的 ElementArrayFinder 项目的最简单方法是什么?
我试图通过filter以下方法做到这一点:
const disabledText = getDisabledMenuItems().getText();
const allItems = getAllMenuItems();
allItems.filter(function(elem, index) {
return elem.getText().then(function(text) {
return disabledText.indexOf(text) < 0 ;
});
});
但我的代码不起作用(indexOf does not exists on type Promise<string>)。我也想知道最简单的方法是什么。