Привет.
Подскажите, как дождаться присутствия аттрибута у элемента?
Если селенид, то можно через 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 лайка