Мне нужно выполнить длительный тест, который включает много повторных нажатий. Из-за этого я подумал об использовании ClickEvent
для эмуляции клика - это было бы намного удобнее, чем использование autohotkey или подобных ему.
Я попробовал следующий код:
var cells = [...window.top.document.querySelectorAll(".DialogMapaPresenter_treeGrid td")];
var rndcell = cells[Math.floor(Math.random()*cells.length)];
// Mousedown click first
rndcell.dispatchEvent(new MouseEvent("mousedown",{
bubbles: true,
cancelable: true
}));
// then mouse up
setTimeout(()=>{rndcell.dispatchEvent(new MouseEvent("mouseup",{
bubbles: true,
cancelable: true
}));},50);
// finaly a click
setTimeout(()=>{rndcell.dispatchEvent(new MouseEvent("click",{
bubbles: true,
cancelable: true
}));},60)
Я отправляю все три события мыши, и ничего не происходит. Я пытаюсь вызвать cellClickHandler
на TreeGrid
. Вот такой:
final TreeGrid treeGrid = this.getTreeGrid();
treeGrid.addCellClickHandler((event)->{
ListGridRecord recGeneric = event.getRecord();
if(recGeneric != null) {
logger.debug(
"Cell clicked: "
+recGeneric.getAttribute("SOME ATTRIBUTE")
);
}
});
Обработчик работает при щелчке мышью.