Явное ожидание не работает на AppiumWebElement при использовании локатора ByAndroidUIAutomator - PullRequest
0 голосов
/ 04 июня 2019

Я использую C # Client для тестирования приложения для Android.Версия Appium: 1.13

Я столкнулся с ситуацией, в которой я использовал приведенный ниже фрагмент кода для явного ожидания отображения элемента, и он не работал.

new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(d => driver.FindElement(new ByAndroidUIAutomator("text(\"Test\")")).Displayed);

, тогда какДрайвер Appium ждал 10 секунд, когда я сменил локатор с ByAndroidUIAutomator на By.Xpath

new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(d => driver.FindElement(By.XPath("//*[@text='Test']")).Displayed);

К моему удивлению, ByAndroidUIAutomator ждал 5 секунд, когда я использовал неявное ожидание.

driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(5));

Теперь мне любопытно узнать, почему он работал для неявного ожидания, а не для явного ожидания.

Сообщение об ошибке при использовании явного ожидания выглядит следующим образом:

Сообщение: System.Reflection.TargetInvocationException: Исключение было сгенерировано целью вызова.----> OpenQA.Selenium.NoSuchElementException: элемент не может быть расположен на странице с использованием заданных параметров поиска.

1 Ответ

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

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

new ByAndroidUIAutomator("new UISelector().text(\"Test\")");

Ссылки:

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