Как я могу получить Cypress для имитации крана Hammer? - PullRequest
3 голосов
/ 11 марта 2019

У меня есть слушатель Hammer на div, слушающий нажатие и нажатие. Я пишу тесты с Cypress, и у меня много проблем с имитацией крана. Я возлюсь с trigger(). Я пробовал trigger('tap'), trigger('mousedown').trigger(mouseup') и trigger('touchstart').trigger('touchend'), но безуспешно. Кто-нибудь успешно производит краны Hammer с Cypress?

Тэп вызывает функцию, которая устанавливает window.location = new-page.html, например так ...

function changePage(id) {
    window.location.href = "FraisEnListe.aspx?idnote=" + id;
}

К сожалению, если я вызываю функцию непосредственно из Cypress, вот так ...

cy.window().then((win) => {
  win.changePage(29312);
})

В качестве базового URL-адреса взят стержень Cypress url, а не текущее местоположение в тестируемом приложении, и я получаю пропарку 404. Это кажется очень сложным.

1 Ответ

0 голосов
/ 01 июля 2019

Попробуйте добавить свойство тип: 'touch' , к триггеру события

 const pointerEvent = {
    force: true,
    pointerType: 'touch',
    x: 11.1386137008667,
    y: 653.46533203125,

}

 cy.get('[data-cy=body]')
            .trigger('pointerdown', pointerEvent)
            .trigger('pointerup', pointerEvent)

В моем случае я должен нажать или нажать на углы:

const pointerEvent = {
            force: true,
            pointerType: 'touch',
        };
        cy.wait(3000);
        cy.get('[data-cy=body]')
            .trigger('pointerdown', 'topLeft', pointerEvent)
            .trigger('pointerup', 'topLeft', pointerEvent)
            .wait(5000);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...