我正在尝试测试项目的插入,并检查添加操作之前和之后发现的项目的长度。这是元素
<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。这是一个柏树虫吗?
答案 0 :(得分:0)
无法复制。您确定项目插入中没有错误吗?另外,我不确定为什么要手动增加大小(items length
和totalChartItems
之间有什么区别?)。
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);
});
});