typescript - 赛普拉斯:如何从自定义命令返回布尔值?
问题描述
我正在尝试编写一个自定义命令,它将元素选择器作为参数并返回一个布尔值,指示元素是否存在。但是自定义命令说明以下内容:
Type 'boolean' is not assignable to type 'CanReturnChainable'
这是我的自定义命令的代码。
declare global {
namespace Cypress {
interface Chainable<Subject> {
isPresent(elementSelector: string): boolean;
}
}
}
Cypress.Commands.add('isPresent', (elementSelector) => {
console.log(document.querySelector(elementSelector))
debugger;
return !!document.querySelector(elementSelector);
})
export {}
解决方案
你需要包装结果,
Cypress.Commands.add('isPresent', (elementSelector) => {
const isPresent = !!document.querySelector(elementSelector);
return cy.wrap(isPresent); // this gives you a Chainable
})
但是你需要在测试中展开
it('', () => {
cy.isPresent('#my-element').then(isPresent => { // unwrap
if (isPresent) {
...
我不确定类型定义,也许它应该返回Chainable<Boolean>
.
推荐阅读
- python - 如何使用 python pil 创建不同的透明度,如渐变?
- excel - 当单元格有多个值时有没有办法匹配
- java - 如何在java中保持更新和跟踪二维数组?
- safari - Safari 意外崩溃
- mongodb - 统计数据库 mongoDB 上的集合
- database - MongoDB:从多个文档中的数组中删除文档
- reactjs - 输入占位符仅显示在开发环境中,但不显示在 React 的生产构建中
- c++ - 当向量的值已经在上面定义的函数中被 push_backed 时,向量的值不能在 main() 中产生的回溯问题
- powerbi - Power BI(报表生成器)日期筛选器
- flutter - 如何在 iPad 等大型设备中模拟可扩展的手机尺寸