2016-07-20 50 views
2

我有我想要驗證的頁面元素的列表正在屏幕上顯示。返回項目名稱不是對象對象

我想輸出到控制檯的元素名稱,我正在尋找但是當我這樣做時,我只是得到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(); 
}); 

回答

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); 
}); 
+0

謝謝@alecxe一旦我的環境恢復正常,我會盡快完成這一步。 – DarthOpto

+0

非常感謝。這工作很好。 – DarthOpto