赛普拉斯获取元素长度返回双倍

时间:2019-05-24 05:56:12

标签: cypress

我正在尝试测试项目的插入,并检查添加操作之前和之后发现的项目的长度。这是元素

<metadata class="chartbase" issubtitle="false" iscontent="true" graphictype="icon" name="barSimpleRectangle">
<metadata class="chartitem" index="0" name="" value="25"></metadata>
<metadata class="chartitem" index="1" name="" value="30"></metadata>
<metadata class="chartitem" name="" index="2" value="36"></metadata>

我尝试在加法之前获取Chartitems,将其递增1,然后调用加法来插入一个Chartitem。现在,我使用上述代码将尺寸与之前的尺寸进行比较

cy.get('.chartitem').its('length').then((size)=>{        
    cy.log("chart items length is ",size);
    size++;
    cy.log("totalChartItems is ",size);
    cy.get('.insertNewChartItem').eq(0).click({force:true});
    cy.wait(2000);
    cy.get('.chartitem').its('length').then((newsize)=>{
        cy.log("new chart items length is ",newsize);
    })
})

这里返回的大小是3,但是newsize返回了8。这是一个柏树虫吗?

1 个答案:

答案 0 :(得分:0)

无法复制。您确定项目插入中没有错误吗?另外,我不确定为什么要手动增加大小(items lengthtotalChartItems之间有什么区别?)。

cy.document().then( doc => {
    doc.body.innerHTML = `
        <metadata class="chartbase" issubtitle="false" iscontent="true" graphictype="icon" name="barSimpleRectangle">
        <metadata class="chartitem" index="0" name="" value="25"></metadata>
        <metadata class="chartitem" index="1" name="" value="30"></metadata>
        <metadata class="chartitem" name="" index="2" value="36"></metadata>
    `;
});
cy.get(`.chartitem`).its(`length`).then((size) => {
    expect(size).to.eq(3);
    cy.document().then( doc => {
        doc.body.innerHTML = doc.body.innerHTML +
            `<metadata class="chartitem" name="" index="3" value="37"></metadata>`;
    });
    cy.get(`.chartitem`).its(`length`).then((newsize) => {
        expect(newsize).to.eq(4);
    });
});