Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

Как сделать explicit wait для Appium для driver.FindElementByAccessibilityId?

windows
appium
Теги: #<Tag:0x00007fedbbb0c830> #<Tag:0x00007fedbbb0c498>

(Viktor Yakushenko) #1

Есть ли explicit wait для Appium(WindowsApp), для такого поиска
driver.FindElementByAccessibilityId("");
Например:
WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.id(“someid”)));

Если реализовываться от IWebElement, то можно сделать, но поиск по ID не работает в таком случае, хотя по имени поиск работает.


(Сергей Кузьмин) #2

помоему

wait.until(
  ExpectedConditions.elementToBeClickable(driver.findElement(By.id("someid")))));

(Viktor Yakushenko) #3

Так как раз таки и не работает(


(Сергей Кузьмин) #4

простите за плохой пример - взято было из plain Selenium теста. а написать вейт сами не пробовали типа

		String id = "XXXX";
		element = (new WebDriverWait(driver, timeout))
				.until(new ExpectedCondition<WebElement>() {
					@Override
					public WebElement apply(WebDriver d) {
						Optional<WebElement> e = d.findElements(By.id(id)).stream()
								.findFirst();
						if (e.isPesent())
							logger.debug("find using id: " + id + "  => "
									+ e.get().getAttribute("outerHTML"));
						return (e.isPresent() && e.get().isDisplayed())) ? e.get() : (WebElement) null;
					}
				});

ну и т.д. ?


(Viktor Yakushenko) #5

Тут же используется интерфейс WebElement, который не позволит использовать FindElementByAccessibilityId. А собственное ожидания для например до driver.FindElementByAccessibilityId(locator).Displayed, написать можно. Мне интересно можно ли мспользовать explisit wait типа ExpectedConditions.elementToBeClickable


(Сергей Кузьмин) #6

сорян привык DIY