cypress.io - ждать ленивый загруженный js-файл - PullRequest
0 голосов
/ 23 января 2019

мы хотим протестировать веб-страницу, которая выполняет ajax-запрос после нажатия кнопки.

Мы можем дождаться ответа на этот ajax-запрос, определив cy.route ()

cy.server()
cy.route("POST", '/exampleAjax').as('exampleAjax')
cy.get('.button').click()
cy.wait('@exampleAjax')

В блоке onComplete ajax-Response мы создаем скрипт-тег и вставляем его:

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); 
    }
});

Теперь мы хотим дождаться загрузки и проверки файла some.js

cy.route("GET", '/some.js').as('some_js')
cy.wait('@some_js')

Но это не работает.Как мы можем этого добиться?

Ответы [ 2 ]

0 голосов
/ 06 марта 2019

Пока мы все еще ожидаем запрос функции, связанный с Art713, мы нашли обходной путь для нас:

Мы разрешаем кипарисам проверять глобальную переменную / функцию, которая определена в загруженном js-файле с отложенной загрузкой:

cy.window().its('<any global var / function>')

В нашем случае мы также увеличили defaultCommandTimeout в cypress.json, чтобы избежать тайм-аута через 4 секунды

{
  "defaultCommandTimeout": 10000
}
0 голосов
/ 12 февраля 2019

Это невозможно с кипарисом в настоящее время. Cypress команда работает над заглушкой сети. Взгляните на эту проблему .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...