Как дождаться присутсвия атрибута у элемента?

Привет.
Подскажите, как дождаться присутствия аттрибута у элемента?

Если селенид, то можно через conditions.

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

2 лайка

А может есть фрагмент кода? Я так и представляю.

Могу на Python. А вы можете переписать себе

def wait_for(condition, timeout=300, interval=5, error_message=None):
    raise_time = int(time() + timeout)
    while int(time()) < raise_time:
        if condition():
            return
        sleep(interval)
    raise TimeoutError(error_message)

condition - лямбда

1 лайк

Можно awaitility заюзать, дабы покрасивше и более модно было))

Код писать сейчас не оч удобно глянь тут много примеров

ну а как аттрибут получить тут - java - How to verify an attribute is present in an element using Selenium WebDriver? - Stack Overflow

Используйте explicit wait:

new WebDriverWait(driver, 10).until(ExpectedConditions.attributeToBeNotEmpty(webElement, "attribute name"));

Используйте Selenide. Решение в одну строку:

$("#elem").shouldHave(attribute("attrName"));

2 лайка