簡體   English   中英

如何從賽普拉斯的多種可能性中斷言? 多個選項中的一個可能為真

[英]How to Assert from multiple possibilities in Cypress? One option could be true out of multiple

我有一個場景,我需要將 Assertion 放在一個元素的文本上,該文本可能是 true 或通過測試用例,如果任何 1 值存在於多個中。

比方說,一個元素可以包含多個狀態:“打開”、“創建”、“進行中”,其中任何一個都可能為真。

我如何實現這種情況並使用 OR 邏輯運算符或任何其他方式進行斷言?

cy.get('element').should('have.text', 'Open' | 'Create')

這聽起來像是one-of斷言,類似於以下內容:

cy.get('element')
  .invoke('text')
  .should('be.oneOf', ['Open', 'Create'])

為此,您需要在斷言之前提取文本。

有關參考,請參閱chaijs oneOf

斷言目標是給定數組列表的成員。 但是,通常最好斷言目標等於其預期值。

這些都有效:

cy.get('element')
  .invoke('text')
  .should('satisfy', (text) => text === 'option1' || text === 'option2')

或者

cy.get('element')
  .invoke('text')
  .should('be.oneOf', ['option1', 'option2']);

如果您想做出斷言並且如果其中一個不存在則測試失敗,Wodens 的答案是最有價值的

但是,如果您想檢查可見元素的文本並根據可用元素執行不同的操作:

cy
  .get('element')
  .filter(':visible')
  .invoke('text')
  .then((text) => {
       if(text.includes('Open')){
          // Things that only occur when Open is present
       } else if (text.includes('Create')){
          // Things that only occur when Create is present
       } else if (text.includes('In Progress')){
          // Things that only occur when In Progress is present
       } else {
         // Things that happen when the options are exhausted
       }
   });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM