以下は、repeat> div> a> span を持つテーブルの html です。
フィルターまたはマップ関数を使用して 2 番目の列の値を比較する方法、つまり idea = ideaOne + ideaTwo + ideaThree + ideaFour をループ内の最初の列の値と比較します。これはアンカー タグであるためです。また、すべてのテーブル値を処理する適切な方法は何でしょうか。
リピーターは完全なテーブル値を提供しますが、フィルターを使用して最初のセル値をクリックしようとすると、アクションが実行され、ブロックに失敗することもありません。コンソール値は、すべてのリピーター値が配列に入っていることを示しています。
ページ オブジェクト クラス-
getAllTableValues: function () {
return element.all(by.repeater('idea in ctrl.ideaList.ideas')).filter(function(elem) {
return elem.getText().then(function(text) {
return text === 'K';
});
}).click();
},
仕様クラス:
tablePage.getAllTableValues().then(function (val) {
console.log("@@@@"+ val);
});
HTML コード:
<ul class="total_ideas">
<!----><li ng-repeat="idea in ctrl.ideaList.ideas" class="" style="">
<div class="protractor testing">
<a class="item_idea" ui-sref="xxx.xxx.xxx.xxx.xxx({
'id': idea.id,
'value': idea.name,
'start': (ctrl.dateRange.start | date: 'M-d-y'),
'end': (ctrl.dateRange.end | date: 'M-d-y')
})" href="/xxx/xxx/;value=K">
K
</a>
</div>
<div class="protractor test testing">
<span ng-bind="ctrl.getTotalIdeas(idea)">6</span>
</div>
<div class="protractor test testing">
<span ng-bind="idea.testTerms[ctrl.period].ideaOne">2</span>
</div>
<div class="protractor test testing">
<span ng-bind="idea.testTerms[ctrl.period].ideaTwo">2</span>
</div>
<div class="protractor test testing">
<span ng-bind="idea.testTerms[ctrl.period].ideaThree">2</span>
</div>
<div class="protractor test testing">
<span ng-bind="idea.testTerms[ctrl.period].ideaFour">0</span>
</div>
</li><!----><li ng-repeat="idea in ctrl.ideaList.ideas" class="">
</li><!---->
</ul>
ここで提案してください。