赛普拉斯断言是数组中的一个词

Cypress assert is a word inside an array

我需要你的帮助。我试图用柏树断言数组中存在一个词。有一个包含音乐类别名称的数组,我应该断言结果的标题包含在该类别中。但在 运行 之后,我收到了这个柏树错误:“断言预期 [Array(1)] 包含流行音乐”。我真的找不到这里的问题是什么。提前谢谢你

    const allMusicTypes = []
    cy.get('.musicCategories')
      .find(selectors.CategoryList + '> a')
      .invoke('text')
      .then((text) => allMusicTypes.push(text.trim()))
      .then(() => {

        cy.get(selectors.results)
          .find('button')
          .click()

        cy.get('.infobox')
          .find('dd')
          .first()
          .invoke('text')
          .then((categoryType) => {
            const resultMusicType = categoryType.split(',')[0]
            expect(allMusicTypes).to.include(resultMusicType.trim())
          })
    

因为.find(selectors.CategoryList + '> a')找到多个元素,.invoke('text')returns所有元素的所有文本在一个长字符串中。

要从中获取数组,获取单个元素的文本

const allMusicTypes = []
cy.get('.musicCategories')
  .find(selectors.CategoryList + '> a')
  .each($el => allMusicTypes.push($el.text().trim()))
  .then(() => {
    ...  // test the category type
    expect(allMusicTypes).to.include(resultMusicType.trim())  // array includes
  })

allMusicTypes视为字符串而不是数组

cy.get('.musicCategories')
  .find(selectors.CategoryList + '> a')
  .invoke('text')
  .then((text) => text.trim())
  .then((allMusicTypes) => {
    ...  // test the category type
    expect(allMusicTypes).to.include(resultMusicType.trim())  // string includes
  })