Ste*_*hen 3 browser e2e-testing cypress
在我们的网站上,当有人单击链接或执行某些操作时,会触发Omniture呼叫。在网络标签的Chrome DevTools中,您可以看到网络请求被触发。
Cypress.io有没有一种方法可以捕获传出的网络请求,以便我们可以检查/解析URL?与此等效的是类似用于Webdriver设置的Browsermob代理。我想使用Cypress.io告诉它单击链接,但是然后我想通过浏览器检查传出网络请求。
您应该可以cy.route用来等待并针对网络请求进行断言:
cy.route({
url:'*omniture.com*',
method: 'POST',
onRequest: (xhr) => {
expect(xhr.request.body).to.eql('somebody')
}
})
Run Code Online (Sandbox Code Playgroud)
如果上述方法不起作用,则可能是因为该模块正在使用fetch,但尚无本机支持。但是,您可以omniture通过将其添加cy.visit()到XHR中来回退到XHR :
cy.visit('example.com', {
onBeforeLoad: (win) => {
win.fetch = null
}
})
Run Code Online (Sandbox Code Playgroud)
..
omniture直接监视全局您可以在网站上的全局对象上使用cy.spy(),spy例如:
cy.visit('example.com')
cy.window().should('have.property', 'omnitureRequest').then(win=>{
cy.spy(win, 'omnitureRequest')
})
Run Code Online (Sandbox Code Playgroud)
(should()由于该omniture <script>标记可能会加载,因此它会先等待对象出现,然后再尝试对其进行监视asynchronously
| 归档时间: |
|
| 查看次数: |
1051 次 |
| 最近记录: |