2010-07-02 34 views
1

我有以下的Web應用程序的結構,這我在自動化測試:奇怪的現象:在調用「點擊」家長的元素,而不是本身(HTML按鈕)

<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元素。 僞代碼,就是這樣做的:

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

請讓我知道你是否知道這種行爲的原因,因爲我真的不知道我在想什麼。 (我已經嘗試了許多不同的方法來解決這個問題,但沒有任何幫助)

謝謝!

回答

2

click與大多數事件一樣,通過所有的祖先元素「起泡」。當您單擊<button>時,是的,您還單擊包含它的<em>

如果爲<em>事件處理程序需要知道的是,點擊直接在<em>的內容區域,但沒有任何孩子,就應該看看event.target(在IE < srcElement 9)財產檢查在打開菜單之前,點擊本身或不在按鈕上。或者,如果按鈕的點擊處理程序調用event.stopPropagation()( IE < 9),則該事件將停止並且不會再傳遞。

+0

非常感謝! 我不知道這一點,你對此有所瞭解 – vmg 2010-07-02 09:48:42

相關問題