Я использую 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: элемент не может быть расположен на странице с использованием заданных параметров поиска.