gpt4 book ai didi

禁用按钮元素的 Cypress 条件语句

转载 作者:行者123 更新时间:2023-12-04 16:23:15 25 4
gpt4 key购买 nike

尝试单击基于另一个具有启用/禁用状态的元素的按钮。出于某种原因,我禁用的检查代码不起作用,它总是以另一个语句(“未找到现有路由”)结尾,即使 UI 启用了选择按钮。

cy.get('voyage-suggested-routes')
.find('button.selectButton')
.then(($routes) => {
if ($routes.is(":disabled")) {
cy.log("No existing routes found...")
} else {
cy.log("Deleting......")
cy.get('.delete-button').click({ force: true, multiple: true })
}
});
这是 DOM:(默认情况下有 3 个元素,如果未禁用,则每个 Select 按钮都有一个删除选项。)
<button class="selectButton" disabled route="1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="..."></path></svg>
SELECT
</button>
也尝试了 jquery 方法,但结果相同。
var btnStatus = Cypress.$('.selectButton')
.is(":disabled");

if (btnStatus == true) {
cy.log("Deleting......")
cy.get('.delete-button').click({ force: true, multiple: true })
} else {
cy.log("No existing routes found...")
}
我错过了什么?
更新 1:
在 Electron 的输入之后,我的新代码是:
 cy.get('voyage-suggested-routes')
.find('button.selectButton')
.then(($routes) => {
if ($routes.is(":disabled").length === 0) {
cy.log("No existing routes found...")
} else {
cy.log("Deleting......")
cy.get('.delete-button').click({ force: true, multiple: true })
}
});

最佳答案

来自文档 jQuery .is()

Description: Check the current matched set of elements against a selector, element, or jQuery object and return true if at least one of these elements matches the given arguments.


因此,如果仅禁用一条路由,则不会继续删除。
尝试使用过滤器查看是否有任何被禁用。
cy.get('voyage-suggested-routes')
.find('button.selectButton')
.then(($routes) => {
const disabled = $routes.filter(":disabled")
if ($routes.length === disabled.length) {
cy.log("No existing routes found...")
} else {
cy.log("Deleting......")
cy.get('.delete-button').click({ force: true, multiple: true })
}
})

关于禁用按钮元素的 Cypress 条件语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69372396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com