автоматизировать пользовательский интерфейс - кнопка события - PullRequest
0 голосов
/ 27 апреля 2011

Я пытаюсь автоматизировать нажатие кнопки моего приложения WPF:

Сведения о кнопке с использованием 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

Я пытался сделать это:

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);

и я все еще получаю исключение «Нет кнопки Изменить каталог».

Что я делаю не так?

Я пытался использовать AutomationID, ProcessID, но безрезультатно.

1 Ответ

0 голосов
/ 18 октября 2011

Не уверен, как выглядит ваша древовидная структура пользовательского интерфейса, но попробуйте изменить TreeScope.Children на TreeScope.Descendants и посмотреть, работает ли это по-прежнему для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...