无法在自动测试中单击元素

时间:2011-08-10 19:01:47

标签: c# watin

我目前正在为我工​​作的公司建立测试工具。我有C#WatiN的经验,从未遇到过我现在遇到的问题。

下面是该页面标记的片段,告诉我这个问题:

<div id="toggle1" class="NavLayout toggle">
     <span onClick="toggleMenu(1, false);">
          <span id="toggletext1">Quote Processing</span>
     </span>
</div>

正如你所看到的,我有一个div,2个跨度和一个图像。我正在使用WatiN尝试单击图像,然后展开菜单,展示另一个我需要点击其他内容的图层。我遇到的问题是让'点击'发生。从我在代码片段中看到的内容来看,在我看来,我需要能够点击该事件,但无法通过代码“找到”它。

有任何帮助吗?

2 个答案:

答案 0 :(得分:7)

我也遇到了点击某些元素的问题。

我遇到了一些问题,我只能点击一个元素,如果它被鼠标悬停在元素上突出显示。

由于我看不到您的代码段,我无法判断是否有任何javascript处理与图片相关联的鼠标悬停,但如果有,则可以尝试以下操作:

img.FireEvent("onmouseover");

img.FireEvent("onmousedown");

img.FireEvent("onMouseup");

您可能也想尝试img.FireEvent("onclick")

这些都是猜测,因为我看不到你的代码。您也可以尝试单击父对象,而不是单击图像元素本身。

编辑: 好了,现在我可以看到你的代码了,看来你应该在其中使用'onclick'代码触发onClick事件。

我没有看到您的代码段中列出的图片,但此代码应该调用最低级别范围的父级。

Watin.Core.Span span = browserinstance
                       .Span(Find.By("innertext", "Quote Processing"));
span.Parent.FireEvent("onclick");

答案 1 :(得分:1)

您要发布的DOM内容不可见。您可能想要编辑帖子并检查它是否可见。
为了点击图片

Watin.Core.Image img = browserinstance.Image(Find By Constraint);
if (img!=null and img.Exists) 
img.ClickNoWait(); 
OR
img.FireEvent("onclick");