【发布时间】:2016-05-18 15:57:13
【问题描述】:
我有一个 Angular 应用程序,其中有一个包含事件日期列表和相应事件描述的时间线。这是 Html 源代码。
<!-- timeline -->
<h4 class="font-thin m-t-lg m-b-lg text-primary-lt">Historical Timeline</h4>
<p></p>
<div id="timeline"class="timeline m-l-sm m-r-sm b-info b-l">
<div ng-repeat = "timeline in formattedTimelineData | orderBy : '-eventDate'">
<div class = "tl-item">
<i class="pull-left timeline-badge {{timeline.class}} "></i>
<div class="m-l-lg">
<div id="eventDate{{$index}}" class="timeline-title">{{timeline.eventDate}}</div>
<p id="eventDescription{{$index}}" class="timeline-body">{{timeline.description}}</p>
</div>
</div>
</div>
</div>
<!-- / timeline -->
现在我基本上是在尝试使用量角器来确保正确的事件日期与事件描述相匹配。所以我决定使用地图功能。问题是我会有一个变量 x ,它会告诉我有多少事件。例如可以有 2 个事件、6 个事件等。事件是动态的 动态生成,您也可以通过查看 html 代码来判断。这是我编写的测试代码。
it('FOO TEST', function(){
var x = 0;
while(x<4){
var timeline = element.all(by.css('#timeline')).map(function (timeline) {
return {
date: timeline.element(by.css('#eventDate'+x)).getText(),
events: timeline.element(by.css('#eventDescription'+x)).getText()
}
});
x++
}
timeline.then(function (Value) {
console.log(Value);
});
});
问题是由于某种原因在命令行中它只打印了 5 个事件中的最后一个事件。它不打印其他事件。我肯定做错了什么。我是全新的承诺,所以这里的任何建议都值得赞赏。是的,我想对时间轴中的每个事件进行单独的测试。
【问题讨论】:
标签: javascript angularjs protractor