如何重置硒鼠标光标的位置
本文关键字:位置 光标 鼠标 何重置 | 更新日期: 2023-09-27 18:14:18
我正在测试一个javascript web应用程序,其中一些行为取决于使用Selenium2 WebDriver c# API的鼠标。我有一个扩展方法,在web元素上执行悬停以保持代码DRY。
public static void Hover(this IWebElement webElement, IWebDriver driver)
{
new Actions(driver).MoveToElement(webElement).Perform();
}
现在我想要一个方法,将鼠标位置"重置"为一些独立于元素的自然默认值。我在TearDown()中调用它,以便在测试后保持驱动程序处于已知状态。我能想到的最好的是
public static void ResetMouseCursor(IWebDriver driver)
{
new Actions(driver).MoveByOffset(-9999, -9999).Perform();
}
这只会让浏览器陷入无人区。有更好的方法吗?
与DOM无关的方法似乎不是个好主意。以上代码在Firefox驱动程序中完全失败了,因为"离开文档"异常。
我能想到的最好的事情是将鼠标光标设置为页面上最根元素的(0,0)位置,或者(在我的情况下是一个IFrame持有单页javascript应用程序)并使用继承来进行初始化。在c#驱动程序中,这是。
public class RootFrame
{
[FindsBy(How = How.CssSelector, Using = "#root-id")]
private IWebElement vfrFrame;
protected IWebDriver driver;
public VfrElement(IWebDriver driver)
{
this.driver = driver;
PageFactory.InitElements(driver, this);
}
public void ResetMouseCursor()
{
new Actions(driver).MoveToElement(vfrFrame, 0, 0).Perform();
}
}
框架中的所有元素都可以继承类并访问方法