Weiß/UI Automation nicht erkennen, die der container (Bereich Steuern) im Register

Ich bin die Automatisierung der windows-Anwendung. Ich habe versucht, Zugriff auf den Bereich element(die text-box, combo-box-Steuerung) unter dem tab-control, aber es ist nicht zugänglich. Weiß den Wert null zurück.

Ich habe versucht, andere Techniken wie UI automation TreeWalker (Rawview, Control-Ansicht, Inhalts-Ansicht), aber nichts hilft.

siehe Bilder unten links:
https://dl.dropboxusercontent.com/u/68446125/Tab.png
https://dl.dropboxusercontent.com/u/68446125/General%20Pane.png

Als in Bild 1, tab-Steuerelement wird abgerufen, richtig durch das Weiß/UI-Automatisierung, aber das Kind-element allgemein* Bereich wird nicht zurückgegeben, und es sind die Steuerelemente nicht zugänglich (Siehe Bild 2 markiert), die erste zugänglich child-element "allgemein* Registerkarte "Position".

Seltsame Sache ist, dass diese Steuerelemente sind zugänglich Inspect.exe (im windows SDK). Ich habe versucht, folgenden Methoden zum abrufen von Kontrollen, sondern allgemein* Bereich ist nie erreichbar über Weiß/UI-Automatisierung.

var tab = Window.Get<Tab>(SearchCriteria.ByControlType(ControlType.Tab).AndByClassName("TwoPageControl")); //Tab control is retrieved properly
var pane = tab.GetElement(SearchCriteria.ByControlType(ControlType.Pane).AndByText("General*")); //this line returns NULL

var pane1 = revWindow.GetElement(SearchCriteria.ByControlType(ControlType.Pane).AndByText("General*")); //this line returns NULL
var pane2 = revWindow.Get<Panel>(SearchCriteria.ByControlType(ControlType.Pane).AndByText("General*"));//throws exception "Failed to get ControlType=pane,Name=General*,ControlType=pane"

Versucht, windows-UI-Automatisierung-code, aber kein Glück.

 System.Windows.Automation.Condition cd1 = new AndCondition(
                new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Tab),
                new PropertyCondition(AutomationElement.ClassNameProperty, "TwoPageControl"));     

            AutomationElement a = window.FindFirst(TreeScope.Descendants, cd1); //Tab control is returned properly here

          TreeWalker rawViewWalker = TreeWalker.RawViewWalker;
            AutomationElement cc = rawViewWalker.GetFirstChild(a); //General * Pane is not returned, instead General* Tab item is returned, though it's not the first child.
            var cd = rawViewWalker.GetNextSibling(cc);  //this returns next pane element available, not General * Pane.               

Bitte helfen Sie mir, wie Sie Zugang zu Allgemeinen * Bereich, und es die Kinder unter der Registerkarte Steuerelement. Jede Hilfe wird sehr geschätzt.

  • nicht jede Methode funktioniert für Sie?
InformationsquelleAutor shan | 2014-09-02
Schreibe einen Kommentar