2015-11-12 48 views
0

我寫了使用鼠標點擊和點擊中心方法的自定義點擊方法。我很少調用'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); 

     } 
+0

你是什麼意思的「硬編碼」?你的問題完全不清楚你想達到什麼目的。請閱讀[mcve],然後改進您的問題。 – AdrianHHH

回答

0

考慮使用的UITestControlBoundingRectangle財產。你並不需要將控制傳遞給Mouse.Click();您只需通過控件的中心點的絕對座標,你可以從BoundingRectangle計算:

公共靜點中心(此矩形矩形){ 返回新的點( rectangle.Left + rectangle.Width/2,rectangle.Top + rectangle.Height/2); }

相關問題