编码用户界面:如何在不进行硬编码的情况下改进代码?

时间:2015-11-12 17:53:35

标签: coded-ui-tests

我编写了自定义点击方法,该方法使用鼠标点击和点击中心方法。我很少打电话给' ClickCenter'方法,所以我使用硬编码值,如下面的脚本和代码工作正常,但希望避免硬编码。有什么帮助吗?

public void Click<T>(UITestControl window, params string[] propertyvalues) where T : HtmlControl
        {
            HtmlControl genericControl = (T)Activator.CreateInstance(typeof(T), new object[] { window });            
            if (propertyvalues.Length == 2)
            {
                genericControl.SearchProperties.Add(propertyvalues);
                if (propertyvalues[1] == "Account Status...")
                {

                    ClickCenter(genericControl);
                    return;
                }               

            }
            else
                for (int i = 0; i < propertyvalues.Length; i = i + 2)
                {
                    genericControl.SearchProperties.Add(propertyvalues[i], propertyvalues[i + 1]);
                }            

            Mouse.Click(genericControl);

        }

1 个答案:

答案 0 :(得分:0)

考虑使用BoundingRectangle的{​​{1}}属性。您无需将控件传递给UITestControl您只需传递控件中心点的绝对坐标,您可以从Mouse.Click();计算:

  

public static Point Center(此Rectangle矩形){   返回new Point(rectangle.Left + rectangle.Width / 2,rectangle.Top + rectangle.Height / 2);           }