如何使用异步wdio使用相同的选择器捕获多个元素?

问题描述 投票:0回答:1

我正在使用异步wdio来测试我的react应用,并希望对具有特定选择器的某些元素进行计数,并检查其中的某些内容。这就是我正在测试的代码如下所示:

<div className='container'>
  <li className='my-element'>
    <button>Button 1</button>
  </li>
  <li className='my-element'>
    <button>Button 2</button>
  </li>
  <li className='my-element'>
    <button>Button 3</button>
  </li>
</div>

所以基本上我想做的是用类li计算my-element标签的数量,并检查其中每个标签的内容。基于docs,似乎我想在$$上使用.container,因此如下所示:

it('count my-elements', async function () {
  const container = await $('.container')
  const myElements = await $$('.my-element') // gives me some weird array with an element object
  console.log(myElements)
})

这是我从console.log获得的对象:

[
  parent: Element {
    sessionId: '12bd5537ee1cee33e1f23d0e1a162a40',
    elementId: '0.345325829273438-8',
    ELEMENT: '0.345325829273438-8',
    selector: '.container',
    parent: Browser {
      sessionId: '12bd5537ee1cee33e1f23d0e1a162a40',
      capabilities: [Object],
      addCommand: [Function],
      overwriteCommand: [Function],
      addLocatorStrategy: [Function],
      config: [Object]
    },
    emit: [Function: bound ],
    isReactElement: false,
    addCommand: [Function],
    overwriteCommand: [Function]
  },
  selector: '.my-element',
  foundWith: '$$',
  props: []
]

不确定如何处理或如何实际检查我通过选择器获得的所有元素。

因此,总之,对于初学者来说,我想计算使用该特定选择器选择了多少元素,也许可以深入了解每个元素并查看/访问其内容。

javascript reactjs webdriver e2e-testing webdriver-io
1个回答
0
投票

$$返回一个元素数组。要获取元素数量,您需要使用Array.length

所以

[myElements.length将为您提供您在$$中找到的元素数量

© www.soinside.com 2019 - 2024. All rights reserved.