这绝对有效。我的github上有一整套这些。
您可以添加更多代码来显示控件设置的内容吗?
这里有一些摘录来展示这可能是什么样子。
public static T Find<T>(this UITestControl parent) where T : UITestControl, new()
{
return new T() { Container = parent };
}
public static IEnumerable<T> FindAll<T>(this UITestControl parent) where T : UITestControl, new()
{
return parent.Find<T>().FindAllAsType();
}
private static IEnumerable<T> FindAllAsType<T>(this T current) where T : UITestControl, new()
{
if (typeof(T).IsSubclassOf(typeof(HtmlControl)))
{
return current.FindMatchingControls().Select(x => new T().ExtendFrom(x));
}
return current.FindMatchingControls().OfType<T>();
}
private static IEnumerable<U> FindAllCastTo<T, U>(this T current) where T : UITestControl
{
return current.FindMatchingControls().Cast<U>();
}
最可能的情况是控件类型不是您尝试将其转换为的类型,或者它为空。