在找出为元素定义的JavaScript事件之后,我们该如何进行?

时间:2012-12-17 21:43:59

标签: javascript events javascript-events watir browser-automation

我是Watir(以及JavaScript)的新手,并且一直关注相关问题(以及答案)。我也经历了“萤火虫”的建议。在找出哪些事件被解雇后,我无法收集我们应该做的事情。

在下列情况下,手动点击“概述”就足够了,但我无法编写代码来自动执行相同的操作。

<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").flash

它成功闪烁。但怀疑,

browser.div(:id, "overview").click

不起作用。

请为此提供解决方案(甚至更好的代码)。

1 个答案:

答案 0 :(得分:1)

你将不得不进行一些实验,但是orde已经指出了可能会有效的方法。

我怀疑这些内容可能是正确答案:

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

您可能必须按照另一个进行点击的行...

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

...再一次,很难确切地知道什么是有效的,所以你必须进行实验。