我有一个我要验证的页面元素列表正在屏幕上显示。
我想向控制台输出我正在寻找的元素名称但是当我这样做时,我只是得到object Object
。
var detailElements = [disabledRuleWarning, detailsLabel, detailsHide,
nameLabel, nameField, ruleActive, groupLabel, threatTypeLabel,
threatTypeDropdown, descLabel, descField, tagsLabel, tagsField,
severityLabel, actionsLabel, addAction];
it(TestSuiteName + 'TC5_Verify Details Elements are displayed', function(){
console.log('TC5 Verify Details Elements are displayed');
DetectionRules.newRuleButton.click();
browser.waitForAngular();
detailElements.forEach((item) => {
console.log('Checking for item: ' + item);
expect(item.isDisplayed()).toBe(true);
});
DetectionRules.deleteRule.click();
});
答案 0 :(得分:4)
据我所知,detailElements
数组的项目为ElementFinder
个对象 - element(by.smth(...))
次调用的结果。
ElementFinder
字符串表示不是您想要在控制台上看到的内容。相反,我建议使用对象/映射而不是数组:
var detailElements = {
'disabledRuleWarning': disabledRuleWarning,
// ...
'addAction': addAction
}
然后,您可以在控制台上输出detailElements
的键,以便操作作为detailElements
对象值的元素:
Object.keys(detailElements).forEach(function(key) {
console.log('Checking for item: ' + key);
expect(detailElements[key].isDisplayed()).toBe(true);
});