Selenium如何制作点击并按住按钮

时间:2015-05-07 06:25:11

标签: selenium automated-tests

在网页中我测试的是一个模式,按下按钮大约5秒后出​​现。

现在我正试图在selenium中做到这一点。 我有这样的方法:

public static void ClickHold(IWebElement by)
{
    SpecialInteractions.ClickAndHold(by);
}

其中

public static Actions SpecialInteractions { get; set; }

并且没有设定的保留时间。

看起来只是点击和释放。有没有办法等待特定的时间然后释放?

2 个答案:

答案 0 :(得分:3)

没有挖掘器,我可以告诉你上面的程序可能会返回NulReference exception。我怀疑你需要通过包装当前的驱动程序实例来实例化Actions

可能的解决方案可能是:

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();
}

答案 1 :(得分:0)

请注意,如果您使用的是Selenium Grid,则无法使用此功能。有一个错误使moveToElement成为无法识别的命令。

public static Boolean moveToThenSlowClickElement(final WebDriver driver, final WebElement toElement, final int millisecondsOfWaitTime) {
        final Actions clickOnElementAndHold = new Actions(driver);
        final Actions release = new Actions(driver);
        clickOnElementAndHold.moveToElement(toElement).clickAndHold(toElement).perform();

        sleep(millisecondsOfWaitTime);

        release.release(toElement).perform();

        final Action hoverOverCheckBox = clickOnElementAndHold.build();
        hoverOverCheckBox.perform();

        return true;
    }