这确实是 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' 一切顺利。
希望这对现在有所帮助,但这需要在下一个版本中修复。
杰伦