在SmartGWT网站中使用dispatchEvent()模拟点击

时间:2019-03-06 12:14:15

标签: automated-tests smartgwt qa

我需要进行长时间的测试,其中涉及很多重复的点击。因此,我想到了使用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")
        );
    }
});

使用鼠标单击时,处理程序将起作用。

0 个答案:

没有答案