2016-08-10 9 views
0

TestStack.Whiteフレームワークを使用して1つのアプリケーションでいくつかの自動化テストを実行しようとしていますが、ハイパーリンクをクリックする方法を見つけることはできません1つの文書で。 document.logstructure():TestStack.White WinFormアプリケーションのドキュメントにあるハイパーリンクをクリックする方法

AutomationId: linkTexts 
ControlType: ControlType.Document 
Name: Perform an action on event#LinkId=1 
     from devices/recording server/management server#LinkId=2 

HelpText: 
Bounding rectangle: 354,563,570,151 
ClassName: WindowsForms10.RichEdit20W.app.0.ca490a_r12_ad1 
IsOffScreen: False 
FrameworkId: WinForm 
ProcessId: 6816 

System.Windows.Automation.ScrollPattern 
System.Windows.Automation.TextPattern 

UISpy:ハイパーリンクの UISpy view

そしてPIC: Picture of hyperlink located in app

ありがとうございます!

+0

は、実行時に、ドキュメントに名前の値を割り当てるために、あなたのコード内で、それは可能ですか? – LordWilmore

+0

document.Name.Contains( "event")または( "linkId = 1")を使用してTRUEに評価することはできますが、それをクリックすることはできません。 –

答えて

0

検索の日後、私は見つけることができる最善の解決策はこれです:

  { 
      ... 
      //Get document container 
      var document = _modalWindow.Get(SearchCriteria.ByAutomationId(Config.DocumentRulesEvent)); 

      // Get document's bounding Rectangle 
      string rightCorner = document.Bounds.Right.ToString(); 
      string leftCorner = document.Bounds.Left.ToString(); 
      string topCorner = document.Bounds.Top.ToString(); 
      string bottomCorner = document.Bounds.Bottom.ToString(); 
      // Hardcoded percent of x and y 
      int percentX = 22; 
      int percentY = 7; 


      GetCoordinatesFromBoundingRectangle(rightCorner, leftCorner, topCorner, bottomCorner, percentX, percentY); 
     } 

     public void GetCoordinatesFromBoundingRectangle(string rightCorner, string leftCorner, string topCorner, string bottomCorner, int percentX, int percentY) 
     { 

      // transform strings to integre  
      int a = Int32.Parse(rightCorner); 
      int b = Int32.Parse(leftCorner); 
      int c = Int32.Parse(topCorner); 
      int d = Int32.Parse(bottomCorner); 

      // Calculate X from AB segment 
      int x = (a - b) * percentX; 
      x = x/100; 
      x = b + x; 

      //Calculate Y from CD segment 
      int y = (d - c) * percentY; 
      y = y/100; 
      y = c + y; 

      ClickOnPoint(x, y); 


     } 

     // Method that moves mouse to x and y and click 
     public void ClickOnPoint(int x, int y) 
     { 
      var pointClick = new System.Windows.Point(x, y); 
      Mouse.Instance.Click(MouseButton.Left, pointClick); 
     } 
関連する問題