点击DIV不会在IE中进行“真正的”点击操作

时间:2011-01-27 09:36:00

标签: testing internet-explorer-8 watin

浏览器:打开兼容性视图的Internet Explorer 8(已测试的应用程序是为IE7编写的)。我有一个div元素,看起来像浏览器中的一个复选框。当我手动点击它时,复选框会自动勾选。以下是这样的结果:http://img593.imageshack.us/g/divunchecked.jpg/当手动单击时,div元素也会将其类属性从“x-grid3-check-col”更改为“x-grid3-check-col-on”。当我运行Watin测试并进行Div.Click()操作时,元素不会自行检查。该元素的HTML:

<DIV class=x-grid3-check-col onclick=booleanInterviewColumnRender_OnClick(this);>&nbsp;</DIV>

我试过:
  - 点击div的父母中的2个(它被放置在另外2个div中)
  - Div.MouseDown(); Div.MouseUp();
  - Div.Firevent("onclick");
  - NameValueCollection eventProperties = new NameValueCollection(); eventProperties.Add("button", "0"); Div.FireEvent("onmousedown", eventProperties); //left mouse click
  - Div.SetAttributeValue("class", "x-grid3-check-col-on"); Div.Refresh();
没有运气。

任何想法如何解决这个问题都会很棒。

1 个答案:

答案 0 :(得分:2)

最后一种解决方法是直接运行javascript调用。

如果你在div元素上添加了一个id:elementID

然后你打电话

div.Document.Eval("document.getElementById(\"elementID\").fireEvent(\"onclick\")");

它将调用您放入属性的onclick回调(您可以先在控制台中尝试确保javascript调用您的回调)。

然而,我认为WatiN mehod .FireEvent on the Element会做同样的事情,所以我不明白为什么你需要这个解决方法。