美好的一天。 出现错误:
<towername>/api/v2/job_templates/<templ_name>/launch
当使用具有同级包含的重写The command that returned the promise was:
> cy.contains()
The cy command you invoked inside the promise was:
> cy.fixture()
方法时。
覆盖命令代码:
get
使用示例:
Cypress.Commands.overwrite('get', (originalFn, selector, options) => {
cy.fixture('selectors').then((selectorsJson) => {
if (selectorsJson.hasOwnProperty(selector)) {
return originalFn(selectorsJson[selector], options)
}
return originalFn(selector, options)
})
})
答案 0 :(得分:1)
已经找到了解决方法,但是在每个必需的测试中都需要具有其他逻辑。 (如果使用示例覆盖get命令,则可能不需要此命令。)
我的解决方案:
命令:
Cypress.Commands.overwrite('get', (originalFn, selector, options) => {
if (options.hasOwnProperty("selectors") && options.selectors.hasOwnProperty(selector)) {
return originalFn(options.selectors[selector], options)
}
return originalFn(selector, options)
})
在测试中:
beforeEach(function() {
cy.fixture('selectors').as('selectorsJson');
})
it('Description', function() {
cy.visit('/some-url');
cy.get("someSelectorAlias", {selectors: this.selectorsJson}).contains('Some text').click()
});
**还有一个更简单的解决方案(无覆盖):**
beforeEach(function() {
cy.fixture('selectors').as('selectors');
})
it('Some tests', function() {
cy.visit('/someurl');
cy.get(this.selectors.someKey).should('be.visible').contains('SomeText')
})