Вы должны иметь возможность использовать cy.route
для ожидания и подтверждения сетевых запросов:
cy.route({
url:'*omniture.com*',
method: 'POST',
onRequest: (xhr) => {
expect(xhr.request.body).to.eql('somebody')
}
})
Если вышеописанное не работает, возможно, это связано с тем, чтомодуль использует fetch , который пока не имеет встроенной поддержки.Однако вы можете просто сделать omniture
откат к XHR, добавив к вашему cy.visit()
:
cy.visit('example.com', {
onBeforeLoad: (win) => {
win.fetch = null
}
})
..
или (как вы упомянули)вы можете шпионить за глобальным omniture
напрямую
. Вы можете использовать cy.spy()
до spy
глобального объекта на вашем сайте, вот пример:
cy.visit('example.com')
cy.window().should('have.property', 'omnitureRequest').then(win=>{
cy.spy(win, 'omnitureRequest')
})
(should()
будет ожидать присутствия объекта, прежде чем пытаться шпионить за ним, так как тег omniture
<script>
может загрузить asynchronously