我目前正在为我工作的公司建立测试工具。我有C#
和WatiN
的经验,从未遇到过我现在遇到的问题。
下面是该页面标记的片段,告诉我这个问题:
<div id="toggle1" class="NavLayout toggle">
<span onClick="toggleMenu(1, false);">
<span id="toggletext1">Quote Processing</span>
</span>
</div>
正如你所看到的,我有一个div,2个跨度和一个图像。我正在使用WatiN尝试单击图像,然后展开菜单,展示另一个我需要点击其他内容的图层。我遇到的问题是让'点击'发生。从我在代码片段中看到的内容来看,在我看来,我需要能够点击该事件,但无法通过代码“找到”它。
有任何帮助吗?
答案 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");