在找出为元素定义了哪些JavaScript事件之后,我们如何继续?

在找出为元素定义了哪些JavaScript事件之后,我们如何继续?,javascript,events,javascript-events,watir,browser-automation,Javascript,Events,Javascript Events,Watir,Browser Automation,我不熟悉Watir(以及JavaScript),一直在关注相关问题(以及答案)。我也经历了“萤火虫”的建议。我不太清楚在发现哪些事件被触发后我们应该做什么 在下面的例子中,手动单击“Overview”就足够了,但是我无法编写代码来自动执行相同的操作 <div id="overview" class="dijitTreeIsRoot dijitTreeNode dijitTreeNodeUNCHECKED dijitUNCHECKED" role="presentation" style="

我不熟悉Watir(以及JavaScript),一直在关注相关问题(以及答案)。我也经历了“萤火虫”的建议。我不太清楚在发现哪些事件被触发后我们应该做什么

在下面的例子中,手动单击“Overview”就足够了,但是我无法编写代码来自动执行相同的操作

<div id="overview" class="dijitTreeIsRoot dijitTreeNode dijitTreeNodeUNCHECKED dijitUNCHECKED" role="presentation" style="background-position: 0px 0px;" widgetid="dijit__TreeNode_10">

<div class="dijitTreeRow" data-dojo-attach-event="onmouseenter:_onMouseEnter, onmouseleave:_onMouseLeave, onclick:_onClick, ondblclick:_onDblClick" role="presentation" data-dojo-attach-point="rowNode" title="" style="padding-left: 0px;">

<img class="dijitTreeExpando dijitTreeExpandoLeaf" role="presentation" data-dojo-attach-point="expandoNode" alt="" src="/hcsadmin/open/dojo/resources/blank.gif">

<span class="dijitExpandoText" role="presentation" data-dojo-attach-point="expandoNodeText">*</span>

<span class="dijitTreeContent" role="presentation" data-dojo-attach-point="contentNode">

<img class="dijitIcon dijitTreeIcon dijitLeaf" role="presentation" data-dojo-attach-point="iconNode" alt="" src="/hcsadmin/open/dojo/resources/blank.gif">

<span class="dijitTreeLabel" data-dojo-attach-event="onfocus:_onLabelFocus" aria-selected="false" tabindex="-1" role="treeitem" data-dojo-attach-point="labelNode">Overview</span>

</span>

</div>

<div class="dijitTreeContainer" style="display: none;" role="presentation" data-dojo-attach-point="containerNode"></div>

</div>
它确实成功地闪烁。但正如人们所怀疑的那样

browser.div(:id, "overview").click
不起作用


请为此提供一个解决方案(或者更好的是,提供一个代码)。

您需要进行一点实验,但orde已经指出了可能会起作用的方法

我怀疑,沿着这些思路的东西可能是正确的答案:

browser.div(id: "overview").span(class: "dijitTreeLabel").fire_event "onfocus"
你可能必须跟随那条线,然后用另一条线来点击

browser.div(id: "overview").span(class: "dijitTreeLabel").fire_event :click

…同样,很难确切地知道什么会起作用,因此您必须进行试验。

您正在测试的页面是公开的吗?或者是否有一个示例页面以相同的方式实现了树?因为它是一个dojo实现,您可能需要识别相应的激发事件(通过firebug或其他方式),并使用.fire_event方法:@Justinko:我正在测试的页面不是公共的。否则,我肯定会给出该页面的链接。@orde:谢谢你的建议。
browser.div(id: "overview").span(class: "dijitTreeLabel").fire_event :click