Cypress 柏树。cy.type({enter})间歇性失败
我正在使用Cypress在web应用程序上运行e2e测试 该部分间歇性故障 这里,在适当的字段中输入搜索文本。单击{enter}时,将进行搜索&对话框仅显示搜索结果 代码如下:Cypress 柏树。cy.type({enter})间歇性失败,cypress,Cypress,我正在使用Cypress在web应用程序上运行e2e测试 该部分间歇性故障 这里,在适当的字段中输入搜索文本。单击{enter}时,将进行搜索&对话框仅显示搜索结果 代码如下: function selectDesign(designName: string, designCode: string) { // enter search text & click enter cy.get(singlePickerSearch).type(designName + '{ent
function selectDesign(designName: string, designCode: string) {
// enter search text & click enter
cy.get(singlePickerSearch).type(designName + '{enter}', { force: true });
// select your design from search results
cy.get(designPickerDesign(designCode))
.scrollIntoView()
.should('have.length', 1)
.click({ force: true });
}
当它失败时,就像“{enter}”没有执行一样。我可以手动单击enter,它就可以工作了
由于是间歇性故障,很难获取日志
每个测试都使用相同的设计。在一次运行中有19个测试。测试运行者可以找到文件18次,然后在一次测试中失败
还尝试在.type()命令中使用反勾号:
没有明显的改善。我最终通过以下方法实现了这一点:
function selectDesign(e2eDesign: any) {
// open dodi picker
cy.get(createCardQueryOpenDodiPicker)
.should('be.visible')
.click()
.then(() => {
// wait for loader
cy.get(loader).should('not.be.visible');
// enter search text
cy.get(dodiPickerSearchText)
.clear()
.type(`${e2eDesign.design.name}{enter}`)
.then(() => {
// wait for loader to go
cy.get(loader).should('not.be.visible');
// short wait to avoid intermittent failure here
cy.wait(400);
// select required design
cy.get(dodiPickerItems)
.should('have.length', 1) // should only be one match
.click();
});
});
}
我认为最后一个.should('have.length'1)会导致它在尝试执行下一个语句之前等待,直到它为真。我最终通过使用以下命令实现了这一点:
function selectDesign(e2eDesign: any) {
// open dodi picker
cy.get(createCardQueryOpenDodiPicker)
.should('be.visible')
.click()
.then(() => {
// wait for loader
cy.get(loader).should('not.be.visible');
// enter search text
cy.get(dodiPickerSearchText)
.clear()
.type(`${e2eDesign.design.name}{enter}`)
.then(() => {
// wait for loader to go
cy.get(loader).should('not.be.visible');
// short wait to avoid intermittent failure here
cy.wait(400);
// select required design
cy.get(dodiPickerItems)
.should('have.length', 1) // should only be one match
.click();
});
});
}
我认为最后一个.should('have.length'1)会导致它在尝试执行下一个语句之前等待,直到该值为真。请注意这意味着什么—“它适用于以'A'开头的项。当我们到达'S'时,结果会变得不稳定。”。此外,如果您看到任何错误,您可以添加一些控制台日志,那就太好了。@Kondasamy Jayaraman-这一怀疑被证明是不真实的,因此我已将其从该问题的描述中删除。请注意这意味着什么—“它对以“A”开头的项目运行良好。当我们到达“S”时,结果变得不稳定。”。此外,如果您发现任何错误,可以添加一些控制台日志,那就太好了。@Kondasamy Jayaraman-这一怀疑被证明是不真实的,因此我已将其从该问题的描述中删除。