我正在try 确定Cypress Select 的元素是"p-input掩码"还是"输入"如果我可以使用hasClass()就可以了,但我不能.以下是我当前的代码:

Cypress.Commands.add('textInputWithLabelTest', (inputId,isDisabled,expectedLabel) => {
    let mask = false;
    cy.get(`[for="${inputId}"]`).should('contain',expectedLabel);
    cy.get(`#${inputId}`).then( ($el) => {
        cy.log($el.find('.ng-pristine'));
        console.log($el.find('p-inputmask')); //TODO fix this

    })
    if(mask) {
        cy.get(`#${inputId}`).siblings('input').should(isDisabled?'be.disabled':'not.be.disabled');
    } else {
        cy.get(`#${inputId}`).should(isDisabled?'be.disabled':'not.be.disabled');
    }
})

我try 了JSON.stringify()with Includes(‘p-input掩码’),但该对象是循环的,无法解析.

我try 了Jquery.toString(),但由于某种原因,jQuery不想出现在文件中,即使我像这样导入它:const $ = require( "jquery" )( window );

我试着用.it(‘p-input掩码’)它不起作用.

我try 使用.find(‘p-input掩码’),由于某种原因,即使$el没有p-input掩码,它也会返回一个值.

我try 了使用.has(),但不起作用.

我用$el[0]和$eltry 了所有这些方法,但都不起作用.

下面是console.log($el[0]);这两个不同元素的输出.

input and inputmask console outputs

对于这一点,肯定有一个微不足道的解决方案,但又是什么呢?有人能帮帮忙吗?

推荐答案

try 使用tagName属性.

Cypress.Commands.add('textInputWithLabelTest', (inputId,isDisabled,expectedLabel) => {
  cy.get(`[for="${inputId}"]`).should('contain',expectedLabel);
  cy.get(`#${inputId}`).then($el => {

    if($el[0].tagName === 'INPUT') {
      cy.get(`#${inputId}`).should(isDisabled ? 'be.disabled' : 'not.be.disabled')
    } else {
      cy.get(`#${inputId}`)
        .siblings('input')
        .should(isDisabled ? 'be.disabled' : 'not.be.disabled')
    }
  })
})

我颠倒了If-Else的顺序,因为我知道<input>tagNameINPUT,但我不确定其他元素.你可以用我展示的东西做实验.

Javascript相关问答推荐

为什么有些库公开了执行相同任务的方法,但每个方法都处于同步/同步上下文中?

Mongodb拥有5亿个文档,我想根据JavaScript驱动程序中的两个字段使用regEx进行搜索,而不是模式

不渲染具有HTML参数的React元素

如何访问Json返回的ASP.NET Core 6中的导航图像属性

Bootstrap动态选项卡在切换选项卡后保持活动状态,导致元素堆叠

调用removeEvents不起作用

如何在Angular中插入动态组件

在这种情况下,如何 for each 元素添加id?

手机上的渲染错误文本必须在文本组件中渲染,但在浏览器上没有问题<><>

cypress中e2e测试上的Click()事件在Switch Element Plus组件上使用时不起作用

在Three JS中看不到补间不透明度更改效果

XSLT处理器未运行

还原器未正确更新状态

是什么导致了这种奇怪的水平间距错误(?)当通过JavaScript将列表项元素追加到无序列表时,是否在按钮之间?

如何 for each 输入动态设置输入变更值

无法重定向到Next.js中的动态URL

构建器模式与参数对象输入

如何在脚本编译后直接将RxJ模块导入浏览器(无需Angel、webpack、LiteServer)

重新呈现-react -筛选数据过多

JavaScript:多个图像错误处理程序