gpt4 book ai didi

javascript - Cypress 与 OpenLayers - 如何模拟 ctrl + 鼠标拖动

转载 作者:行者123 更新时间:2023-12-04 13:55:58 26 4
gpt4 key购买 nike

我正在尝试使用 Cypress 在 OpenLayers map 上模拟 ctrl + 鼠标拖动。

我设法让 OpenLayers 注册单击/ Cypress 事件(例如,单击以创建功能)的唯一方法是使用 .click()例如

cy.get('#map').click(845, 710);

如果我使用 .trigger()pointerdown/ mousedown/ dragstart它要么静默失败,要么抛出错误。无论哪种方式,它都不起作用。

因为 .click()还发出 pointerdown/ pointerup事件我似乎无法使用它来模拟 ctrl + 鼠标拖动。

此外,要按 ctrl,我使用以下命令: cy.get('body').type('{ctrl}', {release: false}) - 这有效。

我不知道接下来要尝试什么。是否有 .click() 的属性我丢了?或者这是 OpenLayers 或 Cypress 的潜在错误/问题?

编辑:我使用的是 Cypress 4.8.0 和 OpenLayers 6.3.1

最佳答案

您有两种可能性:一,这是 Cypress 中的错误,或二,您处理的事件错误。

Cypress 的基本工作方式是通过浏览器内的 API 运行事件,而不是模拟实际的键盘或鼠标操作 (source from a Cypress employee),因此您只能模拟浏览器监听的单个事件。于是我查看了 Cypress 的做法,发现人们已经有了 problems with it在过去。您可以在该链接中的 Github 讨论末尾尝试该代码段,我不确定这是否可以使其起作用。

在本例中,您正在使用 Event.ctrlKey 模拟 Click 事件。设置为真。 (或者至少:这就是你想要发生的事情。)为了进一步调试,我会记录事件本身,并检查 event.ctrlKey 是否设置:

  • 如果它是错误的 - 就这样,这是 Cypress 中的一个错误。
  • 如果是真的,那么 Cypress 工作正常,您只是在以不寻常的方式监听 ctrl/click 事件,如果您切换到类似 this 的内容你会好的。

  • 祝你好运,让我知道进展如何!

    关于javascript - Cypress 与 OpenLayers - 如何模拟 ctrl + 鼠标拖动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62303304/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com