gpt4 book ai didi

cypress - 如何在柏树上模拟长按按键?

转载 作者:行者123 更新时间:2023-12-03 20:27:58 25 4
gpt4 key购买 nike

我想在不选择某些 dom 元素的情况下模拟反引号键的长按键,我们如何使用 cypress 实现这一点?
我的 Web 应用程序上有一个功能,当按下此键时将触发该功能。

我在下面尝试了几个代码,但没有任何效果。

// 1st
cy.get('#sidepanel').trigger('keydown', { keycode: 192, release: false })

// 2nd
cy.get('body').type('`', { release: false })

// 3rd
cy.get('body').trigger('keydown', { keycode: 192, release: false })
cy.wait(15000)
cy.get('body').trigger('keyup', { keycode: 192, release: false })

我希望它会模拟 backqoute 的长按按键,但看起来 backqoute 的输入只发生一次而不是保持。

最佳答案

我不知道为什么,但是在几个月前尝试 Zach Bloomquist 回答时,它没有用。刚才我又试了一次,它有效。我在不同的机器上尝试过,并重新安装了 cypress 3.3.2 版。不确定它是否有不同的影响。

不知何故,Zach 的解决方案并没有给出接近实际按下键的时间。运行他的解决方案实际上会在 Cypress 运行时按下该键 28 秒。

// expect: holding down for 5 seconds
// actual: cypress will hold the keys for 28 seconds
for (var i = 0; i < 100; i++) {
cy.get('body').trigger('keydown', { keycode: 192, release: false })
cy.get('body').trigger('keypress', { keycode: 192, release: false })
cy.wait(50)
}
cy.get('body').trigger('keyup', { keycode: 192, release: false })

我想出了一个更简单的解决方案,它几乎与在 cypress 中运行时的实际持续时间相匹配:

cy.get('body').trigger('keydown', { keyCode: 192 })
cy.wait(duration)
cy.get('body').trigger('keyup', { keyCode: 192 })

如果您清楚地看到此解决方案与我在问题中的第三个选择相同。之前它不起作用,但现在它起作用了。我注意到不同的是 Cypress 运行时的浏览器类型。之前是 chrome,现在是 Electron 61。可能是这个原因,需要进一步调查验证。

关于cypress - 如何在柏树上模拟长按按键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56844697/

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