如何检查列表是否包含javascript中传递的元素
我想检查应用程序返回的列表是否包含预期元素。请告诉我哪里出错:如何检查列表是否包含javascript中传递的元素,javascript,node.js,angularjs,selenium,protractor,Javascript,Node.js,Angularjs,Selenium,Protractor,我想检查应用程序返回的列表是否包含预期元素。请告诉我哪里出错: this.verifyOptionsInDrpDwn = async function(){ var optionList = await drpDwn.all(by.tagName('option')).getText(); console.log(optionList); var expOptions=['a','b','c','d','e','f']; for (let i =
this.verifyOptionsInDrpDwn = async function(){
var optionList = await drpDwn.all(by.tagName('option')).getText();
console.log(optionList);
var expOptions=['a','b','c','d','e','f'];
for (let i = 0; i < expOptions.length; i++) {
var bool=optionList.includes(expOptions[i]);
console.log(bool);
}
}
output :
[
'1-a',
'2-b',
'3-c',
'4-d',
'5-e',
'6-f'
]
false
this.verifyOptionsInDrpDwn=async function(){
var optionList=await drpDwn.all(按.tagName('option')).getText();
控制台日志(选项列表);
var指数=['a'、'b'、'c'、'd'、'e'、'f'];
for(设i=0;i
确定数组的条目中是否包含某个值。但是在您的例子中,您需要检查该数组的元素是否包含指数的值
如果替换var bool=optionList.includes(指数[i])代码>
使用var bool=optionList.some((a)=>a.includes(expOptions[i])代码>,它应该可以工作。确定数组的条目中是否包含某个值。但是在您的例子中,您需要检查该数组的元素是否包含指数的值
如果替换var bool=optionList.includes(指数[i])代码>
使用var bool=optionList.some((a)=>a.includes(expOptions[i])代码>,它应该可以工作。我会用不同的方式来做
定义一个获取所有值的方法
在规范中定义期望的数组并执行断言
这对应于最佳实践,并且您的函数是独立的,所有断言都是测试用例本身的一部分,这表明了常识
但从JavaScript的角度来看,这是一条路要走
this.verifyOptionsInDrpDwn = async function(){
var optionList = await drpDwn.all(by.tagName('option')).getText();
var expOptions=['a','b','c','d','e','f'];
return optionList.length === expOptions.length
&& optionList.every(elem => expOptions.includes(elem))
}
没有经过测试,但给了你一个想法我会用不同的方法
定义一个获取所有值的方法
在规范中定义期望的数组并执行断言
这对应于最佳实践,并且您的函数是独立的,所有断言都是测试用例本身的一部分,这表明了常识
但从JavaScript的角度来看,这是一条路要走
this.verifyOptionsInDrpDwn = async function(){
var optionList = await drpDwn.all(by.tagName('option')).getText();
var expOptions=['a','b','c','d','e','f'];
return optionList.length === expOptions.length
&& optionList.every(elem => expOptions.includes(elem))
}
未测试,但给您一个想法您的optionList数组是['1-a','2-b','3-c','4-d','5-e','6-f',因此它不是预期的输出?我不确定你在问什么?是的,你的输出示例在实际列表中令人困惑,它有'1-a'(例如),但我只想知道'a'是否存在。你的optionList数组是['1-a','2-b','3-c','4-d','5-e','6-f',因此它不是预期的输出?我不知道你在问什么?是的,你的输出示例在实际列表中令人困惑,它有“1-a”(例如),但我只想在“a”是否存在的情况下进行验证。谢谢Sergey。。这对我有用。但它检查实际列表中的确切值。我想检查列表中是否包含该值。请更新此值。谢谢Sergey。。这对我有用。但它检查实际列表中的确切值。我想检查列表中是否包含该值。请更新此值
this.verifyOptionsInDrpDwn = async function(){
var optionList = await drpDwn.all(by.tagName('option')).getText();
var expOptions=['a','b','c','d','e','f'];
return optionList.length === expOptions.length
&& optionList.every(elem => expOptions.includes(elem))
}