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()
函数感兴趣,请看:。希望有帮助。