如何使用Playwright验证字符串列表中的值?
数组元素全存在于标题中的断言方案
你当前的断言逻辑错误导致测试失败:
toContain(multiple_Columns)是检查目标数组是否将整个multiple_Columns作为单个元素包含,完全不符合你要验证每一项存在的需求。toHaveText(multiple_Columns)要求元素文本与数组内容、顺序完全匹配,若标题包含额外内容或顺序不同,就会断言失败。
针对“验证数组所有字符串均存在于标题中”的需求,推荐两种可靠实现:
方案1:遍历数组逐个校验
const multiple_Columns = ["apple","banana","pine"] const headerTitles = await homePage.header_Titles.allTextContents() multiple_Columns.forEach(column => { expect(headerTitles).toContain(column) })
该方式会逐一验证数组内每个字符串是否存在于标题文本集合中,任一元素不存在则断言失败。
方案2:用自定义逻辑断言(适配Playwright等测试框架)
const multiple_Columns = ["apple","banana","pine"] const headerTitles = await homePage.header_Titles.allTextContents() expect(headerTitles).toSatisfy(titles => multiple_Columns.every(col => titles.includes(col)) )
通过toSatisfy自定义校验逻辑,一次性确认multiple_Columns的所有元素都能在标题数组中找到。
若你使用的测试框架支持更针对性的断言(如Chai的include.members),也可以直接用:
expect(headerTitles).to.include.members(multiple_Columns)
此方法同样能验证目标数组包含所有指定元素,无需在意顺序和额外元素。
内容的提问来源于stack exchange,提问作者BugBee
相关产品推荐
相关产品推荐

