[英]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.