我需要进行长时间的测试,其中涉及很多重复的点击。因此,我想到了使用ClickEvent
来模拟点击-比使用自动快捷键或类似功能更方便。
我尝试了以下代码:
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")
);
}
});
使用鼠标单击时,处理程序将起作用。