2016-05-24 9 views
0

Ich habe Web-basierte Anwendung, wo ich versuche Klicken Sie auf einen Hyperlink, In meiner Automatisierung Entwicklungsmaschine funktioniert es gut, aber wenn ich das gleiche auf einer anderen Maschine (VMs), sagen Testgerät mit Test-Agent und Test-Controller über MTM. Ich erhalte die folgende FehlermeldungCodedui Fehler beim Klicken auf Versteckte Kontrolle und Begrenzungsrechteck Probleme

Microsoft.VisualStudio.TestTools.UITest.Extension.FailedToPerformActionOnHiddenControlException: Kann 'Klick' auf das ausgeblendete Steuerelement nicht ausführen. Zusätzliche Details: TechnologyName: 'Web'.

Ich folgte wenige Msdn Blogs und deinstalliert das Sicherheitsupdate auf meinem Windows und derzeit die IE11 auf meiner Dev-Box und Testfeld und VS 2010 Prämie auf meiner Dev-Box

http://i1.blogs.msdn.com/b/visualstudioalm/archive/2013/09/17/coded-ui-mtm-issues-on-internet-explorer-with-kb2870699.aspx?PageIndex=4 Ich verwende aber das hat nicht funktioniert für mich .

Ich habe auch versucht die BoundingRectangle Eigenschaft verwenden diese Art und Weise unter

UITestControlCollection uic = link.FindMatchingControls(); 

    foreach (UITestControl ui in uic) 
{ 
    if (ui.BoundingRectangle.Width > 0) 
     { 
      Mouse.Click(ui); 
      break; 
     } 

} 

aber ich bekomme diese Fehlermeldung:

Microsoft.VisualStudio.TestTools.UITest.Extension.UITestControlNotAvailableException: Das folgende Element ist nicht mehr verfügbar : IE Webkontrolle; Prozess-Id [5136], Fensterhandle [1705946] Weitere Details:

Ich bitte um Hilfe zu diesem Thema. Während ich darum kämpfe, den wahren Grund dafür zu finden. Der Hyperlink ist auf dem Bildschirm sichtbar, aber ich verstehe nicht, warum er für die Wiedergabe ausgeblendet ist. Außerdem kann ich ihn nicht debuggen wie auf der VM, und ich benutze den Teat-Agent, um dies von MTM auszuführen.

Antrag auf Hilfe

Danke,

Keerthi

+0

Ich mag keine Find Controls, weil es sehr langsam ist. Wenn ich durch Kontrollen aufzählen muss, mache ich meine eigene Liste. Liste boxes = new Liste () {textbox1, textbox2, textbox3, textbox4}; Es ist hart codiert, aber es läuft viel schneller als Steuerelemente finden. – jdweng

+0

Ich habe Find Matching Controls hinzugefügt, vorausgesetzt, dass ich ein weiteres verstecktes Steuerelement mit dem gleichen Namen habe, aber ich habe nur ein einziges Steuerelement auf der Webseite – user2861354

+0

Stellen Sie sicher, dass Sie zur gleichen URL auf funktionierenden und nicht funktionierenden Maschinen gehen. Die URL ist möglicherweise nicht auf anderen Computern erreichbar. Es könnte ein Proxy-Problem sein, aber es ist noch zu früh, um es zu sagen. – jdweng

Antwort

0

Es scheint, das Problem ist, dass Ihre Steuer versteckt ist, versuchen Sie das Begrenzungsrechteck mit auf einem „klickenden Punkt“ erstellen, und klicken Sie auf klicken als Workaround für das versteckte Steuerelement.

var clickPoint = new Point(control.BoundingRectangle.X +  control.BoundingRectangle.Width/2, control.BoundingRectangle.Y +  control.BoundingRectangle.Height/2); 

Mouse.Click(clickPoint);