這絕對有效。我有一整套這些在我的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>();
}
最有可能的情況是,控件類型不是您要將其投射到它或它是空的。
如果一切都如您所描述的那麼它應該工作。我懷疑你有什麼遺漏。我可以建議你:a)在調試器中逐步查看「控制」在運行時的類型,以及b)發佈更完整的代碼。 –
另請檢查該控件是否爲空!那是我以前抓到的。 –
其中調用構造函數的行 - 請問您可以添加它嗎? (控制=新....)你可能會自己解決它,當你找到該行;)(但如果不是 - 我還在這裏) –