Элемент пытается быть найден до того, как ожидание наступает и не удается - PullRequest
0 голосов
/ 18 июня 2019

Я создаю несколько тестов для настольного приложения, используя драйвер приложения win. Все хорошо, но не могу использовать модель фабрики страниц, которую я использовал ранее в веб-приложениях. Проблема заключается в том, что если элемент не завершил загрузку, то любой вид ожидания не запускается до того, как к элементу осуществляется доступ. Как только я вызываю ожидание, оно терпит неудачу

Waits.WaitForDisplayedEnabled(Scan.BarcodeField, Driver, 3);

... как только к нему обращаются (и до того, как он может запуститься), код переходит к элементу в «странице», которую я настроил, и говорит, что он не может быть найден. Я знаю, что элемент может быть найден при отладке, так что локатор элементов в порядке. Есть ли лучший способ настроить элементы на страницах, не используя модель фабрики страниц? Фабрика страниц, похоже, не сразу пытается получить доступ к элементу, поэтому она так хорошо работает. Вот как я настраиваю элемент ...

public WindowsElement BarcodeField => Driver.FindElementByXPath("//*[@Name='Barcode' and @ClassName='TextBlock']");

1 Ответ

0 голосов
/ 18 июня 2019

Спасибо, ребята.Нужно было изменить кое-где, но теперь я устанавливаю элементы следующим образом ...

public By BarcodeField => By.XPath("//*[@Name='Barcode' and @ClassName='TextBlock']");

... и теперь ожидания используют By вместо WindowsElement

...