Cypress 和 JavaScript 的新手,請幫忙
我正在自動化測驗用例以檢查按鈕的啟用/禁用狀態,條件是一些元素具有值為 '/Client/images/iconNo.png' 的 'src' html 屬性(按鈕將被禁用)和/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 中還有其他方法可以檢查我上面的測驗用例嗎?
這是內部 HTML 代碼:
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" title="Close">×</button>
<h4 class="modal-title">
<span ng-if="SuccessfulStartGrant" class="ng-binding ng-scope" style="">Eligibility</span>
</h4>
<h4 class="modal-title"></h4>
<h4 class="modal-title"></h4>
</div>
<div popup-dimension="" style="max-height: 118px;">
<div >
<ul >
<li ng-if="!removeEligibilityCondition" ><img ng-src="/Client/images/iconNo.png" src="/Client/images/iconNo.png"> certified</li>
<li ng-if="SuccessfulStartGrant" style=""><img ng-src="/Client/images/iconYes.png" src="/Client/images/iconYes.png"> Not enrolled</li>
<li ng-if="!removeEligibilityCondition" ><img ng-src="/Client/images/iconYes.png" src="/Client/images/iconYes.png"> If applicable</li>
</ul>
</div>
<div ></div>
</div>
<div ng-if="!removeEligibilityCondition">
<button type="button" ng-click="modalClose('CheckEligibilityPopup')">Back</button>
<button id="reqOrientationBtn" ng-if="EligibilityChecklist.ShowRequestOrientation" ng-disabled="!(EligibilityChecklist.SatisfiesActiveICCPCondition &&
EligibilityChecklist.SatisfiesSTQCondition &&
EligibilityChecklist.PastPostGrantReflectionStatusCompleted)" ng-click="RequestOrientation()" disabled="disabled" style="">
Request Here
</button>
</div>
</div>
請幫助并提出建議 非常感謝
uj5u.com熱心網友回復:
Cypress 命令是異步的。這意味著最好使用兩個單獨的 if 條件。此外,您將同一元素包裝三次。將 javascript 斷言與 cypress 命令結合使用會好得多。
例如,這個hasAttribute方法可以幫助您從 if 條件中洗掉斷言。
請分享按鈕的內部 HTML,以便我可以進一步幫助您。
uj5u.com熱心網友回復:
不能使用 Cypress 命令來執行if(), 命令總是回傳一個不是真/假的物件。
使用 jQuery 代替命令
if ($checkListIcon.attr('src') === '/Client/images/iconNo.png')
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/338234.html
標籤:javascript if 语句 用户界面 柏
上一篇:即使條件為真也不執行if陳述句
