Coded ui tests 如何在编码的ui中找到所有具有css类的元素?

Coded ui tests 如何在编码的ui中找到所有具有css类的元素?,coded-ui-tests,Coded Ui Tests,我需要找到所有具有给定css类的Html控件 var htmlControl = new HtmlControl(document); htmlControl.SearchProperties[HtmlControl.PropertyNames.Class] = @class; var uiTestControlCollection = htmlControl.FindMatchingControls(); 当控件上只有一个css类时,使用类名是有效的。如果我在元素上应用了多个css类,我可以

我需要找到所有具有给定css类的Html控件

var htmlControl = new HtmlControl(document);
htmlControl.SearchProperties[HtmlControl.PropertyNames.Class] = @class;
var uiTestControlCollection = htmlControl.FindMatchingControls();
当控件上只有一个css类时,使用类名是有效的。如果我在元素上应用了多个css类,我可以通过指定一个css类而不是全部来搜索元素吗


谢谢

您可以执行部分匹配,如下所示:

htmlControl.SearchProperties.Add(HtmlControl.PropertyNames.Class, @class, PropertyExpressionOperator.Contains);
var uiTestControlCollection = htmlControl.FindMatchingControls();
它的主要缺点是它只是一个简单的字符串比较。为了举例说明,假设您有两个控件A和B。A有类“Test”,B有类“testdiv topnav”。现在,如果执行“测试”搜索,将同时选择控件a和B

要精确匹配类,可以使用上述方法提供尽可能接近的匹配,并将帮助函数写入:

  • 循环遍历集合
  • 获取每个控件的类
  • 在空格上拆分类字符串
  • 循环遍历此数组并测试每个数组是否完全匹配
  • 将元素保留在类完全匹配的位置
  • 注意:这显然不是最优的-如果有人有更好的解决方案,我洗耳恭听

    干杯, 赛博