我们想测试一个在单击按钮后执行 ajax 请求的网页。
我们可以通过定义一个 cy.route() 来等待这个 ajax 请求的响应
cy.server()
cy.route("POST", '/exampleAjax').as('exampleAjax')
cy.get('.button').click()
cy.wait('@exampleAjax')
Run Code Online (Sandbox Code Playgroud)
在 ajax-Response 的 onComplete-Block 中,我们创建一个 script-Tag 并插入它:
new Ajax.Request( "exampleAjax", {
method: "post",
parameters: {'data-id': dataID},
onComplete: function(transport) {
var snode = document.createElement('script');
snode.setAttribute('type','text/javascript');
snode.setAttribute('src','/some.js');
document.getElementsByTagName('head')[0].appendChild(snode);
}
});
Run Code Online (Sandbox Code Playgroud)
现在我们要等待 some.js 加载并尝试
cy.route("GET", '/some.js').as('some_js')
cy.wait('@some_js')
Run Code Online (Sandbox Code Playgroud)
但这不起作用。我们怎样才能做到这一点?