我具有以下Web应用程序结构,正在对其进行自动化测试:

<em unselectable="on" class="x-btn-split">
        <button type="button" class="x-btn-text " id="ext-gen523" title="Add Options">Add</button>
</em>


这两个对象都有事件侦听器,并在某些链接的js文件中添加了viw JavaScript(我不知道确切是哪个文件)。

用鼠标单击“添加”按钮后,调用AJAX函数调用并将行添加到某个表,单击em元素后,打开应用程序菜单。

我尝试通过VBScript重现单击ADD按钮的方法(就像我说的那样,我正在对该应用程序进行自动化测试),而不是在表中添加行,而是打开应用程序菜单。但我确切地知道,我单击的是“添加”按钮,而不是em-element。
伪代码,这样做:

set obj = domHelper.GetElementByClassName(container,"x-btn-text","button")
obj.click


请让我知道。如果您知道这种行为的原因,因为我真的不知道该怎么想。 (我尝试了许多不同的方法来解决此问题,但无济于事)

谢谢!

最佳答案

与大多数事件一样,click在所有祖先元素中“冒泡”。当单击<button>时,是的,您还单击了包含它的<em>

如果<em>的事件处理程序需要知道单击直接在<em>的内容区域中,但不是其任何子级,则应查看event.target(IE srcElement)属性,以在打开菜单之前检查单击是在按钮本身上还是在按钮上。另外,如果按钮的单击处理程序调用event.stopPropagation()(在IE cancelBubble= true),则事件将停止并且不再传递。

10-02 17:23
查看更多