WatiN FireEvent не передает свойства события в FireFox - PullRequest
1 голос
/ 14 февраля 2011

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

Я использую FireFox 3.6 с ассоциированным jssh.

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

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

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

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

1 Ответ

3 голосов
/ 15 февраля 2011

Это действительно недостаток в реализации 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);

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

Jeroen

...