如何在初始页面加载之前在Cypress中填充一行中的多个提示



这里是柏树新手。我试图在页面完全加载之前将数据填充到3个不同的提示中。然后将这些值添加到会话存储中。我的理解是,由于网站没有完全加载,我无法链接cy.visit(),所以我一直在使用onBeforeLoad,所以我可以填充这些提示的数据:

before(function() {
cy.visit(base_url, {
onBeforeLoad(win) {
cy.stub(win, 'prompt').returns('someString').as('stub1')
cy.stub(win, 'prompt').returns('someOtherString').as('stub2')
cy.stub(win, 'prompt').returns('anotherString').as('stub3')
}
})
})

问题是,当我查看"Spies/Stubs"我只看到stub1被使用了3次,而不是3个不同的存根被使用一次。

我也得到了错误TypeError: Attempted to wrap prompt which is already wrapped

任何帮助都将是非常感激的。

提前感谢大家。

编辑:

做类似

的事情
before(function() {
cy.visit(base_url, {
onBeforeLoad(win) {
demo_site_info.forEach(element => {
cy.stub(win, 'prompt').callsFake(() => {
return element
})

});
}
})
})

返回TypeError:Attempted to wrap prompt which is already wrapped

使用callsFake(fn)允许多个假值

it('fakes return values multiple times', () => {
const mod = {
doit: () => 'done'
}
let call = 0
const fakes = ['done1', 'done2', 'done3']
cy.stub(mod, 'doit').callsFake(() => {
return fakes[call++]
})
console.log(mod.doit())  // done1
console.log(mod.doit())  // done2
console.log(mod.doit())  // done3
console.log(mod.doit())  // undefiend
})

相关内容

  • 没有找到相关文章

最新更新