Как включить кнопку с помощью UIAutomation или White - PullRequest
0 голосов
/ 15 марта 2011

Я пытаюсь автоматизировать мастер установки, и мне нужно было нажать на кнопку, которая не включена.

Я знаю, что это можно сделать с помощью сообщений Windows, но мне было интересно, есть ли ужеподдержка белого или UIAutomation для этого

. Для справки это не работает:

var invoke =  (System.Windows.Automation.InvokePattern)setup.button("Next >").AutomationElement.GetCurrentPattern(System.Windows.Automation.InvokePattern.Pattern);  
invoke.Invoke();

и это не

var guiAutomation = new API_GuiAutomation("msiexec");  
var setup = guiAutomation.windows()[0]; 
setup .bringToFront(); 
setup .button("Next >").mouse().click();  // this will work
setup .button("Next >").mouse().click();  // this will not work since the button is not enabled

В приведенном выше примере используется API на основе белогоЯ добавил к O2 Platform (см. Здесь пример автоматизации блокнота )

Ответы [ 4 ]

1 голос
/ 15 марта 2011

Я не верю, что вы можете сделать это с помощью UIAutomation: то, что вы запрашиваете, выходит за рамки рамок UIAutomation. Он предназначен, чтобы позволить вам делать с кодом то же самое, что вы могли бы сделать с помощью мыши и клавиатуры. Он не предназначен для использования в качестве общего средства управления состоянием пользовательского интерфейса.

0 голосов
/ 19 апреля 2012

Нажатие на активированную кнопку скорее связано с методами ввода ошибок, чем с нормальным выполнением приложения. Эта кнопка отключена до конца жизненного цикла приложения или будет включена позже? Если последнее, почему бы не дождаться включения? С помощью do / while для element.Current.IsEnabled или командлета Wait-UIAButton.

0 голосов
/ 16 июня 2011

Если вы используете белый

Mouse.Instance.Location = this.ClickablePoint;

Mouse.LeftDown (); Mouse.Instance.Location = point; Mouse.LeftUp ();

0 голосов
/ 14 июня 2011

Вы можете напрямую вызвать Win32 для функции EnableWindow, которая отправляет сообщение Windows, как вы сказали.

Я искал эту функциональность в UIAutomation, но не нашел ее.

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