我具有以下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),则事件将停止并且不再传递。