3

我在 div 上有 Hammer 监听器,监听点击和按下。我正在用 Cypress 编写测试,但在模拟水龙头时遇到了很多麻烦。我在摆弄trigger()。我试过trigger('tap'),trigger('mousedown').trigger(mouseup')trigger('touchstart').trigger('touchend'), 没有成功。有人用 Cypress 成功生产 Hammer 水龙头吗?

点击调用一个函数,它设置window.location = new-page.html,像这样......

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

不幸的是,如果我直接从赛普拉斯调用该函数,就像这样......

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

赛普拉斯 url 主干被视为基本 url,而不是正在测试的应用程序中的当前位置,我得到一个 404 蒸汽。这似乎很棘手。

4

1 回答 1

1

尝试添加属性type: '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);
于 2019-07-01T12:13:44.817 回答