Если диалоговое окно появляется после установки значения PropertyGridProperty, программа зависает - PullRequest
0 голосов
/ 03 апреля 2019

У меня проблема с настройкой свойства PropertyGridProperty.Value.Если после установки свойства появляется диалог, программа застревает.Свойство имеет несколько параметров (список параметров) для установки.

Ниже, я кратко опишу сценарий при возникновении проблемы:

  1. Поиск PropertyGridProperty
  2. Установка значения свойства
  3. Немедленно отображается диалоговое окно
  4. Код застрял

После закрытия диалогового окна вручную выполнение кода продолжается.К сожалению, я не могу закрыть его в коде, потому что застрял в свойстве строки. Значение = valueToSet.

Я отслеживал проблему внутри своего кода и обнаружил, что он застрял послевыполнение строки, которую я упомянул выше.Нет проблем с настройкой свойства, если не отображается диалоговое окно.К сожалению, кажется, мои руки связаны, пока проблема в библиотеке TestStack.White.

Чтобы понять это, я пытался избегать использования TestStack.White, напрямую работая с AutomationElement и ValuePattern, но, к сожалению, он тоже не сработал.

Я хотел получить ValuePattern объекта AutomationElement, а затем вызвать метод SetValue () для этого ValuePattern.Я сделал следующие шаги:

  1. Я попытался найти AutomationElement с помощью Searchcriteria.Text, и элемент был успешно найден.
  2. Я вызвал метод TryGetCurrentPattern (ValuePattern.Pattern), но он выполнил повторную попыткуfalse (и null по параметру out).
  3. Я вызвал метод GetSupportedPatterns (), и он вернул пустой массив.

Я не понимаю, как это возможно, что те же самые шаги работают при выполнении в библиотеке TestStack White, но не работают для меня?

AutomationElement element = Window.GetElement(SearchCriteria.ByText("element")); // Got element successfully

object patternObject = null;     

element.TryGetCurrentPattern(ValuePattern.Pattern, out patternObject); // Returned false, out pattern was null 
var patterns = element.GetSupportedPatterns(); // Returned an empty array        

У меня есть два вопроса:

  1. Есть ли какие-либо шаги, чтобы не застрять в диалоге?

  2. Что я делаю неправильно, что мой подход к получению AutomationElement ValuePattern не работает?

Буду благодарен за любые ответы.

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