У меня проблема с извлечением полного атрибута стиля, так как часть его все еще не достигла DOM. Это изображение, которое иногда загружается на экран в течение 1-2 секунд, так что происходит то, что есть IS строка с атрибутом, но она ИЗМЕНЯЕТСЯ, когда изображение поступает с сервера.
Я делаю WebDriverWait для того, чтобы элемент был виден в DOM, но когда я пытаюсь взять его атрибут "style" (который имеет "...; (url:" http: // .... ") ", иногда его там нет, и моя подстрока () не работает.
Вот код:
@Step("Print Image src url")
public String printImage(Integer imgNo){
WebElement imgStyle = (new WebDriverWait(driver, 15)).until(ExpectedConditions.visibilityOfElementLocated(By.xpath(Consts.ACTIVE_IMG_XPATH_1000 + "/div[" + (currentImg + 1) +"]/div[1]")));
String styleString = imgStyle.getAttribute("style");
Integer idxUrl = styleString.indexOf("url");
Integer idxJpg = styleString.indexOf("jpg");
String urlImage = styleString.substring(idxUrl+5,idxJpg+3); //styleString.indexOf("http"),20
Log.info("V - Image " + imgNo + " src is: " + urlImage);
return urlImage;
}
Я могу просто добавить System.wait (3000), но я не хочу его использовать. Есть идеи, как решить это лучше? Могу ли я ждать видимости строки?
Спасибо за ваше время.