当前位置: 首页 > 知识库问答 >
问题:

如何检查列表中是否包含在javascript中传递的元素

顾池暝
2023-03-14

我想检查一下从应用程序返回的列表是否包含预期的元素。请告诉我哪里出了问题:

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

共有2个答案

皇甫树
2023-03-14

我会做不同的事

  1. 定义获取所有值的方法
this.verifyOptionsInDrpDwn = async function(){
      return drpDwn.all(by.tagName('option')).getText();
 }
it('Test spec', async () => {
  let expectedArray = ['a','b','c','d','e','f']
  expect(await pageObbject.verifyOptionsInDrpDwn()).toEqual(expectedArray);
});

这与最佳实践相对应,您的功能是不可靠的,所有断言都是测试用例本身的一部分

但是从javascript的角度来看,every()才是正确的选择

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))
 }

没有经过测试,但给了你一个想法

邹英发
2023-03-14

includes确定数组的条目中是否包含某个值。但在您的示例中,您希望检查该数组的元素是否包含ExpOptions的值。

如果将var bool=optionlist.includes(expoptions[i]);替换为var bool=optionlist.some((a)=>a.includes(expoptions[i]));,则应该可以工作。

 类似资料:
  • 问题内容: 使用普通的JavaScript(不是jQuery),是否可以检查元素是否 包含 类? 目前,我正在这样做: 问题是,如果我将HTML更改为此… …不再存在完全匹配的内容,因此我得到的默认输出为none()。但我还是想输出为,因为还 包含 了类。 问题答案: 使用方法: 这适用于所有当前浏览器,并且也有polyfill支持旧版本的浏览器。 或者 ,如果您使用较旧的浏览器,并且不想使用po

  • 问题内容: 我有这样的事情: 我想知道在Python中(不使用for循环)更优雅的方法是什么?我在想这样的事情(例如从C / C ++开始),但是没有用: 编辑:我有点被迫解释这与下面被标记为潜在重复项的问题有何不同(所以我想它不会关闭)。 区别是,我想检查一个字符串是否是某些字符串列表的一部分,而另一个问题是检查字符串列表中的字符串是否是另一个字符串的子字符串。 相似,但不完全相同,在网上寻求答

  • 问题内容: 我有这样的df: 以及物品清单: 我的目标是从中获取至少包含2个元素的所有行。 我想出了以下解决方案: 这给了我我想要的,但是就可伸缩性而言,它可能不是最佳的解决方案。是否有任何“向量化”解决方案?谢谢 问题答案: 我会建立一个Series列表,然后应用vectorized : 它给出了预期的结果:

  • 问题内容: 找出JavaScript数组是否包含值的最简洁,最有效的方法是什么? 这是我知道的唯一方法: 有没有更好,更简洁的方法来实现这一目标? 这与Stack Overflow问题密切相关。在JavaScript数组中查找项目的最佳方法?解决使用数组查找对象的问题indexOf。 问题答案: 现代的浏览器,这不正是这一点,得到广泛支持的人,除IE: 你也可以使用,它不太直接,但对于过时的浏览器

  • 问题内容: 找出JavaScript数组是否包含值的最简洁,最有效的方法是什么? 这是我知道的唯一方法: 有没有更好,更简洁的方法来实现这一目标? 这与Stack Overflow问题密切相关。 在JavaScript数组中查找项目的最佳方法?解决使用数组查找对象的问题。 问题答案: 现代的浏览器,这不正是这一点,得到广泛支持的人,除IE: 你也可以使用,它不太直接,但对于过时的浏览器不需要使用。

  • 问题内容: 如何检查一个DOM元素是否是另一个DOM元素的子元素?有内置的方法吗?例如,类似: 要么 如果没有,那么有什么想法怎么做?它还需要跨浏览器。我还应该提到,孩子可以嵌套在父级以下的多个级别。 问题答案: 更新: 现在有一种本地方法可以实现此目的。。在评论中也提到了答案。 旧答案: 使用该属性应该可以。从跨浏览器的角度来看,它也是非常安全的。如果已知这种关系是一级的,则可以简单地检查一下: