cypress.io - 等待延迟加载的 js 文件

toa*_*sty 5 cypress

我们想测试一个在单击按钮后执行 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)

但这不起作用。我们怎样才能做到这一点?

Art*_*713 4

目前 cypress 无法做到这一点。Cypress 团队正在研究网络存根。看看这个问题