我在 DOM 中有類名為 'okrSelectorSelect__value-container' 的 div。
<div class="okrSelectorSelect__value-container"><div>
這個 div 是可選的。我想單擊它并使用IF IT EXIST之后出現的塊進行一些額外的測驗。我正在嘗試這個。
cy.get('.okrSelectorSelect__value-container').then(($higherObjectivePick) => {
if ($higherObjectivePick.length > 0) {
$higherObjectivePick.click();
}
});
但是當塊不在頁面上時得到這個

這是我的解決方案,但看起來有更漂亮的方法可以做到這一點。
cy.get('body').then($body => {
if ($body.find('.okrSelectorSelect__value-container').length > 0) {
cy.get('.okrSelectorSelect__value-container').click();
cy.get('.okrSelectorSelect__option').eq(higherOrderObjectiveNumber).click();
}
});
uj5u.com熱心網友回復:
我通常像你一樣做同樣的事情,但為它創建一個自定義命令會更漂亮,如下所示:
Cypress.Commands.add("clickIfExists",(containerId , ItemId)=>{
cy.get('body').then($body => {
if ($body.find(containerId).length > 0) {
cy.get(ItemId).click();
}
});
})
通過這種方式,如果您想單擊,您可以隨時這樣稱呼它.okrSelectorSelect__option:
cy.clickIfExists(".okrSelectorSelect__value-container",".okrSelectorSelect__option")
uj5u.com熱心網友回復:
您可以使用 jquery 運算子來檢查元素是否存在,并將該函式如下包裝,添加到您的 support.js 檔案中:
Cypress.Commands.add("checkIfClassExists", (classToFind) => {
return Cypress.$(classToFind).length>0
})
然后在你的測驗中:
if (cy.checkIfClassExists('.okrSelectorSelect__value-container')) {
//do something
} else {
//do nothing
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/398975.html
標籤:javascript 反应 测试 柏
下一篇:使用rspec、shouda_matcher和factory_bot_rails進行Rails測驗rturnsPG::NotNullViolation:ERROR:nullvalueincolumn
