如何在剧作家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']);
我很难让剧作家验证多个 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']);