Как избежать .wait () в Cypress для загрузки всех элементов - PullRequest
1 голос
/ 25 октября 2019

Я искал решение проблем .wait (), которые у меня были в Cypress. Наше приложение не загружает все данные одновременно. Наиболее распространенный ответ на подобные запросы таков:

cy.server();
cy.route('**/api/getData').as('getData');
cy.visit('/home');
cy.wait('@getData');

Это просто не работает. Вы попадете в / customer / 12345, но может пройти еще несколько секунд, прежде чем будут загружены все данные, даже некоторые элементы пользовательского интерфейса. Таким образом, проверка маршрута не помогает вообще. Я пытался создать псевдоним, но когда я делаю что-то вроде этого:

cy.get('#submitButton').as('submit')

, а затем делаю:

cy.wait('@submit')

Сбой проверки псевдонима, потому что кнопки еще нет.

Мне нужно дождаться загрузки всех ресурсов, прежде чем я смогу начать тестирование элементов. Разработчик из моей команды, который не имеет никакого представления о Cypress, спросил, могу ли я использовать событие загрузки Windows или GlobalEventHandler.onload, но я не смог найти никакой документации по их использованию в Cypress.

Одна вещьЯ хотел бы, чтобы все отвечающие поняли, я абсолютный новичок. У меня есть опыт работы с Java, Selenium, Unirest и Junit. Мне нужно полностью изменить свое мышление с Cypress, и я не знаю Javascript, поэтому я все еще на стадии изучения этого. В Selenium у меня будет

wait.until(ExpectedConditions.elementToBeClickable(By.id<submitButton>));

Итак, есть ли способ убедиться, что все ресурсы загружены до того, как он начнет выполнять тесты?

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