Click DIV не выполняет «настоящую» операцию нажатия в IE - PullRequest
0 голосов
/ 27 января 2011

Браузер: 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>

Я пытался:- нажмите 2 из родителей div (он находится в 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 Ответ

2 голосов
/ 27 января 2011

Последний обходной путь - это прямой вызов javascript.

если вы указали идентификатор элемента div: elementID

тогда вы звоните

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

И он будет вызывать обратный вызов onclick, который вы указали в своем атрибуте (сначала вы можете попробовать в консоли, чтобы убедиться, что javascript вызывает ваш обратный вызов).

Однако я думаю, что метод WatiN. FireEvent на элементе делает то же самое, поэтому я не понимаю, зачем вам этот обходной путь.

...