问题描述:

I am trying to automate the clicking of my WPF application's button:

Details of the button using UISpy.exe:

AutomationElement

General Accessibility

AccessKey: ""

AcceleratorKey: ""

IsKeyboardFocusable: "True"

LabeledBy: "(null)"

HelpText: ""

State

IsEnabled: "True"

HasKeyboardFocus: "False"

Identification

ClassName: "Button"

ControlType: "ControlType.Button"

Culture: "(null)"

AutomationId: "JumptodirectoryButton"

LocalizedControlType: "button"

Name: "Edit Directories"

ProcessId: "5784 (GUI)"

RuntimeId: "7 5784 46496694"

IsPassword: "False"

IsControlElement: "True"

IsContentElement: "True"

Visibility

BoundingRectangle: "(1683, 885, 104, 23)"

ClickablePoint: "1735,896.5"

IsOffscreen: "False"

ControlPatterns

Invoke

I tried to do this:

AutomationElement aeDirectory = null;

aeDirectory = aeMasterBuild.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.NameProperty, "Edit Directories"));

if (aeDirectory == null)

throw new Exception("No Edit Directory button");

else

Console.WriteLine("Edit Directory button present");

Console.WriteLine("Clicking on edit directories button");

InvokePattern ipClickDirectories = (InvokePattern)aeDirectory.GetCurrentPattern(InvokePattern.Pattern);

ipClickDirectories.Invoke();

Thread.Sleep(1500);

and I still get the exception "No Edit Directory button".

What am I doing wrong?

I tried using AutomationID, ProcessID but to no avail.

网友答案:

Not sure what your ui tree structure looks like, but try changing TreeScope.Children to TreeScope.Descendants and see if that still doesnt work for you.

相关阅读:
Top