gpt4 book ai didi

phantomjs - 如何在casperjs/phantomjs中模拟 "press and hold"(长按)按键 Action ?

转载 作者:行者123 更新时间:2023-12-02 04:40:04 24 4
gpt4 key购买 nike

我正在使用 casperjs 来测试类似网格的小部件。网格包含大量行。可以通过按住Shift 键来多选行,然后单击两个dirrent 行,然后单击两次之间的行将被选中。这是我测试此功能的代码段:

casper.start(mytesturl);

this.then(function sendKeydown(){
//send Shift keydown event
this.page.sendEvent('keydown', '', null, null, 0x02000000);
});
this.then(function startClick(){
//click row 0
this.click('#row0', '50%', '50%');
});



this.then(function secondClick(){
//click row 3
this.click('#row3', '50%', '50%');

});

this.then(function sendKeyup(){
//send Shift keyup event
this.page.sendEvent('keyup', '', null, null, 0x02000000);
this.capture('afterKeyup.png');

});

我也试过“this.page.sendEvent('keyup', this.page.event.key.Shift);”,但都失败了,afterKeyup.png 总是只显示第 3 行被选中,而不是第 0 行到 3 个选择。

我想问题是,Casperjs 或 Phantomjs 在遇到其他步骤时不会保留 keydown 状态,所以每次我发送 keyup 事件时,它都充当第一次按下 Shift 键,测试套件不会认为 Shift 键现在处于按住状态(“keydown”)。

所以我想知道如何实现按住Shift键和点击事件?

提前致谢!

最佳答案

不是在页面上触发事件,而是找到哪个节点正在监听(例如使用 chrome 开发工具)所需的事件,然后:

// node where event listeners are listening
var element = document.querySelector('foo#bar');

var evt = document.createEvent('HTMLEvents');
evt.initEvent('keydown', false, true);
element.dispatchEvent(evt);

关于phantomjs - 如何在casperjs/phantomjs中模拟 "press and hold"(长按)按键 Action ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38311504/

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