Получить позицию кареты с TestStack.White - PullRequest
0 голосов
/ 28 февраля 2019

Я использую White, чтобы получить окно Microsoft Word и документ в виде текстового поля, например:

Application a = Application.Attach(0x0000AC34);
Window w = a.GetWindow("Document1 - Word", InitializeOption.WithCache);
TextBox doc = w.Get<TextBox>(SearchCriteria.ByControlType(ControlType.Document));

Есть ли способ получить положение каретки?Меня интересуют как координаты экрана, так и позиция в тексте.

В идеале я ищу что-то в White.

Если нет, я знаю, что могу положиться на AutomationElement и TextPattern, т. Е.

TextPattern tp = doc.AutomationElement.GetCurrentPattern(TextPattern.Pattern) as TextPattern;
TextPatternRange[] selectionRanges = tp.GetSelection();
// etc...

Есть ли какие-либо недостатки в этом?Есть ли лучшие варианты, которые я должен рассмотреть?

Есть ли способ получить доступ к интерфейсу IUIAutomationTextPattern2?

1 Ответ

0 голосов
/ 02 марта 2019

Вы не сможете сделать это в TestStack.White, потому что TestStack.White оборачивает только управляемый API UIAv2.С FlaUI вы сможете сделать это, потому что у них есть пакет как для UIAv2, так и для UIAv3.Вот оболочка , которую они написали вокруг библиотеки UIAv3 COM.

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