Наведите указатель мыши на элемент с помощью WatiN - PullRequest
3 голосов
/ 31 мая 2011

Я работаю над набором автоматических тестов, которые были разработаны с использованием WatiN и MBUnit.Я слышал, что можно заставить WatiN «зависать» над элементом, но я не могу заставить его работать, используя методы, которые я использовал в прошлом.Есть ли другой способ сделать это, о котором я не знаю?Я пытался использовать только FireEvent 'onmouseover' и использовать FireEvent плюс кликать по ссылке.

myDiv.HoverLink.FireEvent("onmouseover");
myDiv.HoverLink.Click();

Есть предложения?Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 21 августа 2014
    /// <summary>
    /// Mouse Over on given <see cref="Element"/>
    /// </summary>
    /// <param name="element">element</param>
    /// <returns>Nothing</returns>
    public static void MouseOver(this Element element)
    {
        var jref = element.GetJavascriptElementReference();
        var dom = element.DomContainer;

        var evt = new JSEventCreator(jref, null);
        var evtProp = new NameValueCollection();
        evtProp.Add("windowObject", "window");

        var scriptCode = evt.CreateMouseEventCommand("mouseover", evtProp);
        Logger.LogDebug(scriptCode);
        scriptCode = scriptCode.ToString() + jref + ".dispatchEvent(event);";

        string result = dom.Eval(scriptCode);
        Logger.LogAction(result);
        dom.WaitForComplete();
        Thread.Sleep(TimeSpan.FromSeconds(2));
    }

Это то, что я сделал, и оно работает как в IE 11, так и в FF.

0 голосов
/ 14 июня 2011

Попробуйте использовать метод MouseEnter для объекта, который вы хотите навести.

Вот пример:

hoverLink.MouseEnter();
...