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

How can I grab multiple elements with the same selector using async wdio?

我正在使用 async 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>

所以基本上我想做的是计算带有 class my-elementli 标签的数量,并检查每个标签的内容。 基于 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: []
]

不确定如何处理这个或如何实际检查我使用该选择器获得的所有元素。

总而言之,对于初学者,我想计算一下使用该特定选择器选择了多少个元素,也许能够更深入地了解每个元素和 see/access 它们的内容。

$$ returns 元素数组。要获取您需要使用的元素的数量 Array.length

所以

myElements.length 会给你用 $$

找到的元素的数量

__

不确定 "see/access their contents" 是什么意思。但是如果你想获取你找到的每个元素的文本,你可以执行任何适合数组的操作(例如 forEach