如何在剧作家nodejs中验证select元素上的多个select离子

how to validate multiple selections on a select element in playwright nodejs

我很难让剧作家验证多个 select 元素中的多个 select 离子。

例如,假设我有以下倍数 select:

<select id="colors" name="selected-colors" multiple>
  <option value="R">Red</option>
  <option value="Y">Yellow</option>
  <option value="B">Blue</option>
</select>

在我的剧本中,我发出以下命令:

await page.selectOption('#colors', ['R', 'B']);

因此,此时 select 编辑了红色和蓝色选项。在我的应用程序中,要求是在用户制作他们的 selection、运行他们的报告并登陆新页面后,他们应该能够返回到该页面并且这些选项仍然是 selected .所以,我需要测试一下。

我试过了

await expect(page.locators('#colors')).toHaveValue(['R', 'B']);

但这对我不起作用。当我这样做时,它告诉我实际值为 R。我试过寻找答案,但没有成功。

即使剧作家团队没有强烈推荐,我不确定你有多少选择而不是使用“$eval”。

const allSelectedValues = await page.$eval('yourMultiSelectorLocator', e => Array.from(e.selectedOptions).map(option => option.value));

expect(selectedValues).toEqual(['R', 'B']);