3
我正在使用casperjs来测试网格状小部件。网格包含大量的行。可以通过按住Shift键多次选择行,然后单击两个dirrent行,然后两次点击之间的行将被选中。这里是我的代码段来测试此功能:如何模拟casperjs/phantomjs中的“按住”(长按)键动作?
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键,test suite don' t认为现在按住Shift键(“keydown”)。
所以我想知道我应该怎么做才能实现按住Shift键和点击事件?
在此先感谢!