Я новичок ie до cypress
, поэтому, пожалуйста, будьте терпеливы со мной. ;-) Я уверен, что это простой вопрос, и я уже прочитал документацию cypress
, но в моем тесте cypress
что-то все еще кажется неправильным. Я хочу дождаться завершения запроса xhr
, когда нажимаю на другой язык страницы, которую хочу протестировать. Это работает, когда я использую wait(5000)
, но я думаю, что есть лучший способ дождаться завершения запроса xhr
, чем 5 секунд. Это мой код Будем благодарны за любую помощь или подсказки:
describe('test',() => {
it('should open homepage, page "history", click on English language, click on German language',() => {
cy.server();
cy.route('POST','/ajax.php').as('request');
cy.visit('http://localhost:1234/history');
cy.wait('@request');
cy.get('div[class="cursorPointer flagSelect flag-icon-gb"]').click({force:true});
cy.route('POST','/ajax.php').as('request');
cy.wait(['@request']);
//cy.wait(5000); // <- this works, but seems to be not the best way
cy.get('h2').should(($res) => {
expect($res).to.contain('History');
})
cy.get('.dataContainer').find('.container').should('have.length', 8);
});
});
Последняя проверка
cy.get('.dataContainer').find('.container').should('have.length', 8);
не удалась, поскольку запрос xhr
еще не завершен. Запрос xhr
запускается, когда щелчок по значку сделан:
cy.get('div[class="cursorPointer flagSelect flag-icon-gb"]').click({force:true});
Вот изображение запроса xhr, если это помогает найти ошибку:
Спасибо за любую помощь.