为什么 cy.wait 不处理通过变量输入 cy.intercept 属性 的请求?
Why cy.wait doesn't handle request, with cy.intercept property entered via variable?
如果直接在cy.intercept属性中输入'Panasonic'就可以了
cy.intercept('GET', '**/part-number/search?q=Panasonic**').as('getPNList')
但是如果这个值通过变量添加到 cy.intercept 属性 中,它就不起作用并且 cy.wait 会随着超时而下降。可能是什么原因?
let pnName = 'Panasonic'
cy.intercept('GET', '**/part-number/search?q={@pnName}**').as('getPNList')
cy.get('.select2-search__field').click().type(pnName)
cy.wait('@getPNList').then((interception) => {
expect(interception.response.statusCode).eq(200)
})
我相当确定您的字符串插值不正确,因此,您的拦截只是在寻找 '**/part-number/search?q={@pnName}**'
而不是用变量替换 {@pnName}
。
试试这个:
cy.intercept('GET', `**/part-number/search?q=${pnName}**`).as('getPNList')
Check out more about string templates/string interpolation at MDN.
考虑使用查询参数的替代格式
const pnName = 'Panasonic'
cy.intercept({
pathname: '**/part-number/search',
query: {
q: pnName,
},
}).as('getPNList')
如果直接在cy.intercept属性中输入'Panasonic'就可以了
cy.intercept('GET', '**/part-number/search?q=Panasonic**').as('getPNList')
但是如果这个值通过变量添加到 cy.intercept 属性 中,它就不起作用并且 cy.wait 会随着超时而下降。可能是什么原因?
let pnName = 'Panasonic'
cy.intercept('GET', '**/part-number/search?q={@pnName}**').as('getPNList')
cy.get('.select2-search__field').click().type(pnName)
cy.wait('@getPNList').then((interception) => {
expect(interception.response.statusCode).eq(200)
})
我相当确定您的字符串插值不正确,因此,您的拦截只是在寻找 '**/part-number/search?q={@pnName}**'
而不是用变量替换 {@pnName}
。
试试这个:
cy.intercept('GET', `**/part-number/search?q=${pnName}**`).as('getPNList')
Check out more about string templates/string interpolation at MDN.
考虑使用查询参数的替代格式
const pnName = 'Panasonic'
cy.intercept({
pathname: '**/part-number/search',
query: {
q: pnName,
},
}).as('getPNList')