Я использую 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, t думаю, что клавиша Shift теперь удерживается («keydown»).
Итак, я хочу знать, как мне сделать, чтобы добиться нажатия и удерживания клавиши Shift вместе с событием click?
Заранее благодарен!