一尘不染

JavaScript模拟右键点击代码

selenium

我正在使用Selenium编写一些UI测试,并且使用Dojo工具箱具有一个JavaScript Tree控件。

我已经使用Dojo提供的示例为树的每个节点实现了一个上下文菜单,但是我需要Selenium测试来“调用”树节点上的右键,但是我无法使其正常工作。这些测试根本不会通过JavaScript模拟右键单击事件,并且不会显示上下文菜单。

是否有人在使用Dojo和Selenium调用上下文菜单上的右键单击方面有任何经验?或对如何操作有任何想法?


阅读 262

收藏
2020-06-26

共1个答案

一尘不染

请尝试执行此操作,原因是事情并没有完全起作用,原因是上下文菜单实际上绑定到oncontextmenu事件。

function contextMenuClick(element){
    var evt = element.ownerDocument.createEvent('MouseEvents');

    var RIGHT_CLICK_BUTTON_CODE = 2; // the same for FF and IE

    evt.initMouseEvent('contextmenu', true, true,
         element.ownerDocument.defaultView, 1, 0, 0, 0, 0, false,
         false, false, false, RIGHT_CLICK_BUTTON_CODE, null);

    if (document.createEventObject){
        // dispatch for IE
       return element.fireEvent('onclick', evt)
     }
    else{
       // dispatch for firefox + others
      return !element.dispatchEvent(evt);
    }
}
2020-06-26