WatiN FireEvent не передает свойства события в FireFox

Это было зарегистрировано как ошибка в sourceforge сейчас удалил.

Я использую FireFox 3.6 с соответствующим jssh.

Я вижу в Firebug, что свойства события не устанавливаются. Я пытаюсь перетащить код ниже

var mouseDownEvent = new NameValueCollection 
                         {{"button", "1"}, {"clientX", "0"}, {"clientY", "0"}};
firstStoryRow.FireEventNoWait("onmousedown", mouseDownEvent);

Существуют обходные пути для передачи этих свойств, но не они ты не хороший.

Кто-нибудь знает, это настоящее ограничение WatiN или я что-то не так делаю?


person dove    schedule 14.02.2011    source источник


Ответы (1)


Это действительно недостаток реализации FireFox. Все указанные параметры/значения игнорируются для событий мыши. Это должно быть исправлено, и это не так сложно. Я снова открою вопрос на SourceForge.

Чтобы это работало, вы можете запустить этот код, что на самом деле делает для вас WatiN:

var jscriptref = firstStoryRow.GetJavascriptElementReference();

var fireeventcode = string.Format("var event = {0}.ownerDocument.createEvent('MouseEvents');",jscriptref);

// Params for the initMouseEvent:
// 'type', bubbles, cancelable, windowObject, detail, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey, button, relatedTarget )
fireeventcode += "event.initMouseEvent('mousedown', true, true, null, 0, 0, 0, 0, 0, false, false, false, false, 1, null);";
fireeventcode += string.Format("var res = {0}.dispatchEvent(event);", jscriptref);
fireeventcode += "if(res){true;}else{false;};";

// make it a NoWait call by wrapping it in a timer call.
fireeventcode = JSUtils.WrapCommandInTimer(fireeventcode);

var result = browser.Eval(fireeventcode);

Если результат == 'true', все прошло хорошо. Надеюсь, это поможет на данный момент, но это должно быть исправлено в следующем выпуске.

Йерун

person Jeroen van Menen    schedule 14.02.2011
comment
это работает, хотя результатом является число (предположим, это потому, что мы не вызываем ClientPort.WriteAndReadAsBool(command) как WatiN). С другой стороны, может возникнуть отдельный вопрос, но знаете ли вы о каких-либо ограничениях чтения свойств Dom с помощью GetAttributeValue в FireFox. Я просматриваю источник и вижу только специальные тесты IE, которые обращаются к таким вещам, как смещение и clientWidth. - person dove; 15.02.2011
comment
Эта (= исходная) проблема исправлена ​​в коде разработки. Будет частью следующего выпуска WatiN 2.0+. По поводу ограничений ФФ. Мне пришлось сбалансировать значения атрибутов чтения и значения свойств из элементов DOM. Может быть, это то, что заставляет вас задуматься. - person Jeroen van Menen; 28.02.2011