Q:

Selenium how to make click and hold button

In webpage I test is a modal which appears after pressing a button for circa 5sec.
And now I'm trying to make this in selenium.
I have method like this:
public static void ClickHold(IWebElement by)
{
    SpecialInteractions.ClickAndHold(by);
}

where 
public static Actions SpecialInteractions { get; set; }

and there is no hold time to set.
It looks like just clicking and releasing. Is there a way to wait for particular amount of time and then release?

A:

Without digging dipper I can tell you the program above probably returns NulReference exception. I suspect you need to instantiate the Actions by wrapping the current driver instance.
Possible solution could be:
public void ClickHold(IWebElement element)
{
    Actions action = new Actions(driver);
    action.clickAndHold(webelement).build().perform();
    //you need to release the control from the test
    //actions.MoveToElement(element).Release();
}

