Javascript Cypress元素不可见,因为它的有效宽度和高度为0 x 0像素

Javascript Cypress元素不可见,因为它的有效宽度和高度为0 x 0像素,javascript,jquery,automation,cypress,Javascript,Jquery,Automation,Cypress,在iframe中对元素执行操作时,我遇到以下错误: 60000ms后重试超时:预期“”为“可见”此元素不可见,因为它的有效宽度和高度为:0 x 0像素 以下是我的元素代码: cy.get('iframeselector',{timeout: 150000}) .its('0.contentDocument.body').should('not.be.empty') .then(cy.wrap).find('p').should('be.visible').clear().typ

在iframe中对元素执行操作时,我遇到以下错误:

60000ms后重试超时:预期“”为“可见”此元素不可见,因为它的有效宽度和高度为:0 x 0像素

以下是我的元素代码:

cy.get('iframeselector',{timeout: 150000})
    .its('0.contentDocument.body').should('not.be.empty')
    .then(cy.wrap).find('p').should('be.visible').clear().type('abc')

我尝试过使用{force:true},甚至通过invoke方法更改宽度。但到目前为止,没有什么对我有效。任何帮助都将不胜感激

下面是html的快照:
我找到了解决办法。页面中还有3个其他iframe,每个iframe都在一个容器中。我打算在第二个iframe中的元素上执行操作,默认情况下,我的代码尝试在第一个iframe中的元素上工作

Cyress没有给出发现多个IFrame的错误。因此,我被0x0像素错误搞晕了。以下几点对我很有用:

  cy.get('parentContainer').within(()=>{
        cy.get('iframeselector',{timeout: 150000})
        .its('0.contentDocument.body').should('not.be.empty')
        .then(cy.wrap).find('p').should('be.visible').clear().type('abc')
})

我甚至通过了,但迄今为止,没有任何东西对我有效。你能创建一个可复制的小示例repo并与我们共享吗?“甚至通过调用方法更改宽度”你必须同时更改宽度和高度。@Manuel Abascal在question@Ouroborusinvoke方法没有更改宽度。调用调用函数前后的宽度保持不变。