在网页中我测试的是一个模式,按下按钮大约5秒后出现。
现在我正试图在selenium
中做到这一点。
我有这样的方法:
public static void ClickHold(IWebElement by)
{
SpecialInteractions.ClickAndHold(by);
}
其中
public static Actions SpecialInteractions { get; set; }
并且没有设定的保留时间。
看起来只是点击和释放。有没有办法等待特定的时间然后释放?
答案 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;
}