如何初始化 HtmlDiv
本文关键字:HtmlDiv 初始化 | 更新日期: 2023-09-27 18:34:09
我正在尝试将Microsoft.VisualStudio.TestTools.UITesting.HtmlControls.HtmlDiv
作为参数传递,所以我需要在一行中初始化并找到我正在寻找的特定控件(如果可能的话),但我正在努力弄清楚。正常的初始化是这样完成的...
HtmlDiv htmlDiv = new HtmlDiv(htmlDocument) // where htmlDocument is of Microsoft.VisualStudio.TestTools.UITesting.UITestControl
htmlDiv.SearchProperties[HtmlDiv.PropertyNames.Id] = "header";
我正在尝试做这样的事情...
myFunction(new HtmlDiv(htmlDocument) {
SearchProperties[HtmlDiv.PropertyNames.Id] = "header"
});
我收到错误cannot resolve symbol 'SearchProperties'
和Cannot initialize type 'Microsoft.VisualStudio.TestTools.UITesting.HtmlControls.HtmlDiv' with a collection initializer because it does not implement 'System.Collections.IEnumerable'
.
有没有办法做到这一点?
我找不到一种方法来做到这一点,所以我在我的 HtmlDocument 包装器类中创建了一个方法,该方法将返回找到的 UITestControl。
public class UiHtmlDocument : HtmlDocument {
public UiHtmlDocument(UITestControl searchLimitContainer) : base(searchLimitContainer) {}
public T searchHtmlElementByAttributeValues<T>(Dictionary<string,string> propertyExpressions) where T : UITestControl, new() {
var uiTestControl = Activator.CreateInstance(typeof(T), this);
foreach (var propertyExpression in propertyExpressions) {
((T)uiTestControl).SearchProperties[propertyExpression.Key] = propertyExpression.Value;
}
return (T)uiTestControl;
}
}
并像这样使用...
myFunction(
browserWindow.htmlDocument.searchHtmlElementByAttributeValues<HtmlDiv>(
new Dictionary<string, string> {
{ HtmlDiv.PropertyNames.Class, "footer" }
}
)
);