[英]Loops through Array executes “else” even when “if” statement is true (Javascript)
[英]Cypress (javascript) 'else' block executes even when the first 'if' statement condition is true
Cypress 和 JavaScript 的新手,請幫忙
我正在自動化測試用例,以檢查按鈕的啟用/禁用狀態,條件是一些元素的 'src' html 屬性值為 '/Client/images/iconNo.png'(按鈕將被禁用)和/Client/images/iconYes.png(按鈕將被啟用)。
我使用 if 語句通過包裝對象以獲取值並使用 '.then()' 方法來檢查上述條件,下面是 javascript 代碼
cy.get('.eligibilitySuccessfulGrant > :nth-child(1) > .cursor')
.then(($checkListIcon) =>{
if(cy.wrap($checkListIcon).should('have.attr', 'src', '/Client/images/iconNo.png')){
verifyQIAPTab.clickRequestOrientation().should('be.disabled')
}
else (cy.wrap($checkListIcon).should('have.attr', 'src', '/Client/images/iconYes.png'))
{
verifyQIAPTab.clickRequestOrientation().should('be.enabled').click()
}
})
問題:如果第一個 'if' 語句為真,那么它應該通過測試用例,但是柏樹拋出一個錯誤,表示不滿足 else 條件。
柏樹正在檢查.should('be.enabled').click()
條件。 我該如何解決這個問題?
或者
cypress 中還有其他方法可以檢查我上面的測試用例嗎?
請幫助並提出建議 非常感謝
Cypress 命令是異步的。 這意味着最好使用兩個單獨的 if 條件。 此外,您將同一元素包裝三次。 將 javascript 斷言與 cypress 命令結合使用會好得多。
例如,這個hasAttribute方法可以幫助您從 if 條件中刪除斷言。
請分享按鈕的內部 HTML,以便我可以進一步幫助您。
不能使用 Cypress 命令來執行if()
,命令總是返回一個不是 true/false 的對象。
使用 jQuery 代替命令
if ($checkListIcon.attr('src') === '/Client/images/iconNo.png')
下面的代碼通過返回 else 塊中的值和條件滿足我的預期,按預期運行良好
else ($checkListIcon1.attr('src') === '/Client/images/iconNo.png')
{
cy.wait(7000)
let buttonDisabled = verifyQIAPTab.clickRequestOrientation().should('be.disabled')
return buttonDisabled;
}
})
感謝@Mihi 和@Syeda Aeimen Bukhari在這方面提供的廣泛幫助。 我能夠在你的幫助下解決這個問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.