Щелчок мышью пользовательского интерфейса Microsoft Automation в заданной позиции

Я разрабатываю консольное приложение С#, которое откроет приложение и сделает там кое-что. Я могу запустить приложение и войти в приложение. Мне нужно выполнить некоторую операцию щелчка мыши в определенных позициях, но я не смог найти, как это сделать. Можно ли его смоделировать? Я должен использовать позицию, потому что мне нужно то, что я хочу сделать, это не просто щелкнуть кнопку или текстовое поле. Мне нужно щелкнуть правой кнопкой мыши в главном окне и выбрать что-то из меню открытия. Я не уверен, что есть способ сделать это с пользовательским интерфейсом Microsoft Automation.

Заранее спасибо.


person user1244069    schedule 10.12.2015    source источник


Ответы (2)


Загрузите Microsoft.TestApi из Nuget.

using Microsoft.Test.Input;
using System.Drawing;

Mouse.MoveTo(new Point(1000, 1000));
Mouse.Click(MouseButton.Right);

Также вы можете использовать Teststack.White для таких целей автоматизации.

person unickq    schedule 11.12.2015
comment
Если я использую Teststack.White, это будет тест, верно? Что я хочу сделать, так это запустить приложение и заставить его генерировать некоторые данные ночью, чтобы я мог увидеть результаты утром. Также некоторые другие друзья будут использовать его, и на их машинах не установлена ​​​​визуальная студия. Так что я думаю, что консольное приложение лучше. Я также мог бы использовать autoIt, но мне это показалось более сложным. - person user1244069; 11.12.2015
comment
White — это просто библиотека для взаимодействия с приложением Windows. С его помощью вы можете создать отдельное консольное приложение, а не только тестировать - person unickq; 11.12.2015
comment
Я этого не знал. Большое спасибо. Хорошо это знать. - person user1244069; 11.12.2015

Microsoft.TestApi должен иметь возможность щелкнуть предоставленную вами координату. Взгляните на метод MoveTo класса Mouse.

Вероятно, вам придется получить координаты через GetClientRect метод однако. В качестве альтернативы вы можете использовать TestApi в сочетании с UIAutomation, как вы и собирались использовать. Получите AutomationElement вашего запущенного процесса, получив дескриптор окна, затем вы сможете перемещаться по визуальному дереву с помощью UIAutomation и использовать GetClickablePoint, чтобы получить объект Point, который можно передать методу Mouse.MoveTo() TestApi.

person Rowbear    schedule 10.12.2015