如何使用C#检查该元素是否在selenium webdriver中具有焦点

时间:2014-02-25 11:04:37

标签: selenium-webdriver

我想检查元素是否有焦点? 我试过了

Assert.True(Selenium.IsElementPresent("id=txtemail:focus"));

并且还有很多命令但是所有显示错误都缺少程序集引用 谢谢!

1 个答案:

答案 0 :(得分:0)

我开始with this post并最终使用此扩展方法。坐标属性似乎是最好的使用价值。如果彼此之上有2个元素,则可能会失败,但您可能无论如何也不想要这样。

/// <summary>
/// Does the current element have focus?
/// </summary>
/// <param name="element">The element to test</param>
/// <returns>If the element is focused.</returns>
public static bool IsElementFocused(this RemoteWebElement element)
{
    var focusedElement = ((IJavaScriptExecutor)UITestFramework.Browsers.Browser.Driver).ExecuteScript("return document.activeElement;") as RemoteWebElement;
    return focusedElement != null && focusedElement.Coordinates.AuxiliaryLocator.ToString() == element.Coordinates.AuxiliaryLocator.ToString();
}