Явное ожидание webdriver не работает в appium 1.7.2
Я создал служебный класс, где у меня есть:
public void waitForScreenToLoad(AndroidDriver lDriver, WebElement element, int seconds){
WebDriverWait wait = new WebDriverWait(lDriver,seconds);
wait.until(ExpectedConditions.visibilityOf(element));
}
и мой основной класс входа имеет:
@Test (priority = 0)
public void SignIn() throws InterruptedException, IOException {
Thread.sleep(8000);
MobileElement ele = (MobileElement) driver.findElementByAccessibilityId("abcde");
MobileElement sign = (MobileElement) driver.findElementByAccessibilityId("Sign in");
sign.click();
// Thread.sleep(8000);
waitForScreenToLoad(driver, ele, 120);
captureScreenshot(driver,folder_name,df);
Thread.sleep(2000);
}
Они оба в одной упаковке. Элемент ele
присутствует на обеих страницах до и после входа в систему. Ожидание не работает, но, если я использую Thread.sleep
это работает, и я могу сделать скриншот.
Кто-нибудь может сказать мне, что не так с моим кодом? или если используете Thread.sleep
так часто можно заставить это работать?
1 ответ
ele
стал устаревшим после нажатия и перезагрузки страницы. Попробуйте использовать другое ожидаемое условие.
public void waitForScreenToLoad(AndroidDriver lDriver, By locator, int seconds)
{
WebDriverWait wait = new WebDriverWait(lDriver,seconds);
wait.until(ExpectedConditions.visibilityOfElementLocated(locator));
}
@Test (priority = 0)
public void SignIn() throws InterruptedException, IOException {
Thread.sleep(8000);
//MobileElement ele = (MobileElement) driver.findElementByAccessibilityId("abcde");
By ele_locator = By.AccessibilityId("abcde");
MobileElement sign = (MobileElement) driver.findElementByAccessibilityId("Sign in");
sign.click();
// Thread.sleep(8000);
waitForScreenToLoad(driver, ele_locator, 120);
captureScreenshot(driver,folder_name,df);
Thread.sleep(2000);