量角器:如何迭代和比较从应用程序和场景表使用中继器得到的值
Protractor: how to iterate and compare values got using repeater from application and from scenario tables
我从应用程序使用中继器函数和期望值从场景数据表中获得的实际值的列表。如何存储和比较实际值与期望值?
场景:场景:作为用户,我应该能够登录到应用程序并查看用户列表和注册日期假设我登录到应用程序的用户名"abcd"和密码"passwOrd123"当我打开视图成员注册时然后必须列出以下用户和注册日期:|用户名| registrationDate |user1 | | 05/30/2010 || user2 | 06/11/2009 |
下面是我为这一步写的实现代码:this.Then(/^Then the following users and registration date must be listed:$/, function (table) {
var data = table.hashes();
element.all(by.repeater('members in member list')).then(function(member) {
for (i=0;i<member.length;i++) {
member[i].element(by.binding('app.memberName')).getText().then(function (actualMemberName) {
console.log("Member Name: " + actualMemberName);
});
member[i].element(by.binding("app.reg.date | jsonDate:'MM/dd/yyyy'")).getText().then(function (actualRegDate) {
console.log("Actual Registration Date: " + actualRegDate);
});
}
});
});
由'members in member' List返回的用户列表不会始终以相同的顺序排列。
您使用的是哪个框架?如果您正在使用Jasmine框架,那么您可以在for循环的中添加expect语句,以验证实际和期望的值,如以下代码片段-
expect(actual_value).toEqual(expected_value);
如果你没有使用任何框架,那么你可以尝试使用普通javascript验证值,就像下面的代码片段-
if(actual_value === expected_value)
//do something
else
//print error
或
if(actual_value.localeCompare(expected_value) == 0)
//do something
else
//print error
两个函数的工作方式相同。
要存储来自中继器函数的用户列表,请查看MAP函数可在量角器。它将element.all()函数中的数据按顺序存储在数组中。稍后可以使用该数组对表进行检查。这里有一个例子-
element.all('selector here').map(function(ele){
return ele.getText().then(function(arrayText){
return arrayText;
});
}).then(function(arrayText){
//arrayText is an array with list of elements from repeater function
//Use the arrayText and compare it to your table
});
相关文章:
- Babel编译错误:找不到模块核心js/library/fn/get迭代器
- 在es6中,将带有回调的事件侦听器设置为可迭代的
- 从两个基于0的for循环迭代器中获取单个基于0的索引的公式
- Rails:试图在javascript(Google Charts API)中嵌入一个adv-ruby(each+迭代器
- 在javascript中,从迭代器创建Array
- Javascript中的迭代器和生成器
- 从迭代器/生成器中获取单个yield值
- 尝试在两次迭代中警告同一选择器的值,在第一次迭代中得到正确的值,而在第二次迭代中获得不正确的值.为什么?
- Javascript性能-在dom上迭代并添加侦听器
- 迭代器和可迭代之间的区别
- 文件夹迭代器中的Google驱动器文件迭代器
- DOM:如何根据迭代器值设置元素宽度并在mouseover上调用函数
- javascript中多维数组的迭代器
- 迭代Promise迭代器的非递归方法
- 循环中的Node.js回调具有错误的迭代器值
- underscore.js,迭代器引用错误
- 如何让forloop通过asp.net验证器进行迭代
- 在 Angular JS 中继器中迭代一个变量
- 使用ES2015迭代器和迭代协议可以避免副作用吗?
- 量角器:如何迭代和比较从应用程序和场景表使用中继器得到的值