2

我是 c# 和 selenium 的新手。

我试图创建一个元素扩展来将鼠标悬停在一个元素上。我有以下内容:

public static void mouseoverElement(this IWebElement element, IWebDriver driver)
{           
    Actions actions = new Actions(driver);      
    actions.MoveToElement(element).Perform();

}

这将从另一个类中调用

public MLinks mouseOverCandidate()
{
candidateMenu.mouseoverElement(driver);
return this;
}

这就是我将从测试中调用的地方:

new HomePage(driver, server)
    .MainLinks.mouseOverCandidate();

我总是会得到这个我不太明白的。我已经有一个驱动程序集。任何人都可以帮助我解决这个问题吗?谢谢

System.ArgumentException : The IWebDriver object must implement or wrap a driver that implements IHasInputDevices.
4

2 回答 2

2

mouseoverElement方法采用 IWebDriver,它是一个接口。

具体的驱动程序类实现了这个接口,以及另一个接口IHasInputDevices

所以你需要传入具体的类,这样它就可以暴露IHasInputDevices,以及IWebDriver

于 2016-08-28T18:54:06.990 回答
0

请注意,如果您传入的 WebDriver 为空,您也会收到此错误。

于 2021-12-28T16:21:16.920 回答