Protractor 使用量角器选择子div id

Protractor 使用量角器选择子div id,protractor,angularjs-e2e,Protractor,Angularjs E2e,我在为行中的每一行提取子divID时遇到问题。下面的map函数 换句话说,对于我迭代的每个行元素,我想拉取rowIdattrib: <div id="rowId_21"> 下面是一个Html片段: 销售额 首先,您需要从映射函数返回。并且,使用.getAttribute()方法获取id属性: var selDataRows = '.grid-wrapper.fluid-wrapper'; var rows = element(by.css(selDataRows)).all

我在为
行中的每一行提取子
div
ID时遇到问题。下面的map
函数

换句话说,对于我迭代的每个行元素,我想拉取
rowId
attrib:

<div id="rowId_21">

下面是一个Html片段:


销售额
首先,您需要从映射函数返回。并且,使用
.getAttribute()
方法获取
id
属性:

var selDataRows = '.grid-wrapper.fluid-wrapper';
var rows = element(by.css(selDataRows)).all(by.repeater('row in vm.sourceData.data'));

rows.map(function (row) {            
    return row.element(by.xpath("descendant::div[starts-with(@id, 'rowId')]")).getAttribute("id").then(function(rowId) {              
        return rowId;
    });
}).then(function(ids) {            
    console.log(ids);            
});   

你好,朋友,谢谢你的回复。我需要映射函数中的rowId;但是,看起来我使用了
thisRowId.getText()
而不是
getAttribute(“id”)
犯了一个错误。我早上第一件事就要重新测试。谢谢@鲍勃,马佐明白了,是的,这应该有帮助。顺便说一下,如果以后不需要ID数组,请查看
each()
是否比
map()
更适合此项工作。谢谢,我们在城里找个时间喝一两杯啤酒吧!(如果有兴趣,请通过linkedin联系我!)我正在考虑
.each()
,但我完全忘记了发生了什么。我会重新考虑这个想法+1在将该键行更改为
getAttribute(“id”)
之后,我注意到这一行还拉入了行id-
row.element(by.css('div[id^=“rowId”])
)。使用by.css()而不是xpath()可能会稍微快一点。@bob.mazzo我想您可能对使用
takewhile()
函数感兴趣,请看:。希望有帮助。