Javascript:赛普拉斯:select 样本不包含值

Javascript: Cypress: select sample with not contain value

我想从下拉列表中 select 一个随机值,但不能 select 编辑特定值。

    const initialOrderReason = cy.xpath("//tbody/tr[1]/td[4]");
    tkm
      .dropdownOptions()
      .should("be.visible")
      .then((options) => {
        cy.get(Cypress._.sample(options))
          .not.contain(initialOrderReason)
      });

怎么可能?

有很多相关代码您没有显示,包括 HTML 但这是我根据您提供的解决方案

cy.xpath("//tbody/tr[1]/td[4]") 应该通过 .then() 而不是返回值来访问它。

并为所有元素提取元素的文本。

cy.xpath('//tbody/tr[1]/td[4]')
  .invoke('text')                   // extract text
  .then(initial => {

  tkm.dropdownOptions().should("be.visible")
    .then((options) => {
      const texts = [...options].map(option => option.innerText)    // extract texts

      const notInitial = texts.filter(text => text !== initial)     // filter out initial

      const random = Cypress._.sample(notInitial)   // random other value
      
      // Assuming "//tbody/tr[1]/td[4]" gives a <select> element
      cy.xpath('//tbody/tr[1]/td[4]').select(random)

    });

  cy.xpath('//tbody/tr[1]/td[4]')       // requery the dropdown
    .should("not.have.text", initial);  // to allow DOM to change 
})