Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Помогите с заменой Thread.sleep() в теле цикла.

java
webdriver
Теги: #<Tag:0x00007f7b6105e978> #<Tag:0x00007f7b6105e400>

(Саня Дадижа) #1

В цикле прохоже по набору элементов кликаю по ним и закрываю окошка, все работает, но только если использовать Thread.sleep(). Явные и неявные ожидание не помогают. Окна самые обычные, то есть использовать ожидание по WindowHandle и Alert немогу, только список локаторов.


(Ray Romanov) #2

Брр, ничего не понял, примеры в студию…

ЗЫ: Ясновидящие и телепаты перевелись на этом форуме :(…


(Саня Дадижа) #3
int index = 0;
        for (WebElement item : List) {
       //Thread.sleeap(1000);
          wait.until(ExpectedConditions.elementToBeClickable(item));
            item.click();
            WebElement close = List_Close.get(index);
            wait.until(ExpectedConditions.elementToBeClickable(close));
            close.click();
            index++;
        }

не совсем оригинальный код, но суть такая.
Если не использовать sleep выдает ошибку: Element is not clickable at point (674,467.20 ). Other element would receive the click.


(Ray Romanov) #4

Ну это понятно, не перестроилось окончательно DOM дерево документа, а что за JS движок используется?


(Саня Дадижа) #5

Если чесно, не знаю. это тестовое задание.


#6

Попробуйте использовать и\или visibilityOfElementLocated в купе с

Actions actions = new Actions(driver);
actions.moveToElement(item).perform();

(Саня Дадижа) #7

Ах да, Actions тоже не работает), но за visibilityOfElementLocated спасибо)


(Саня Дадижа) #8

visibilityOfAllElements помогло решить проблему. Всем большое Спасибо!!!