我需要找到所有具有给定css类的Html控件。
var htmlControl = new HtmlControl(document);
htmlControl.SearchProperties[HtmlControl.PropertyNames.Class] = @class;
var uiTestControlCollection = htmlControl.FindMatchingControls();
当控件上只有一个css类时,使用类名可以正常工作。如果我在元素上应用了多个css类,我可以通过仅指定一个css类而不是所有css类来搜索该元素吗?
由于
答案 0 :(得分:2)
您可以执行部分匹配,如下所示:
htmlControl.SearchProperties.Add(HtmlControl.PropertyNames.Class, @class, PropertyExpressionOperator.Contains);
var uiTestControlCollection = htmlControl.FindMatchingControls();
主要的缺点是它只是一个简单的字符串比较。为了说明,假设您有两个控件A和B. A有类“Test”,B有类“testdiv topnav”。现在,如果您执行“test”搜索,将选择控件A和B.
要准确匹配类,可以使用上述方法提供尽可能匹配的close,并将辅助函数写入:
注意:这显然不是最佳的 - 如果有人有更好的解决方案,我会全力以赴。
干杯, SEB