Если вам нужно проверить, что изображение доступно и существует, вы можете сделать так:
protected boolean isResourceAvailableByUrl(String resourceUrl) {
// backup current url, to come back to it in future
String currentUrl = webDriver.getCurrentUrl();
try {
// try to get image by url
webDriver.get(resourceUrl);
// if "resource not found" message was not appeared - image exists
return webDriver.findElements(RESOURCE_NOT_FOUND).isEmpty();
} finally {
// back to page
webDriver.get(currentUrl);
}
}
Но вы должны быть уверены, что прохождение currentUrl действительно вернет вас обратно на страницу перед выполнениемэтого метода.В моем случае это было так.Если нет - вы можете попытаться использовать:
webDriver.navigate().back()
А также, к сожалению, как представляется, нет никакой возможности проанализировать код состояния ответа.Вот почему вам нужно найти какой-либо конкретный веб-элемент на странице NOT_FOUND и проверить, появился ли он, а затем решить - что изображение не существует.
Это просто обходной путь, потому что я не нашел никакого официального способа решенияit.
ПРИМЕЧАНИЕ. Это решение полезно, если вы используете авторизованный сеанс для получения ресурса и не можете просто загрузить его с помощью ImageIO или строго с помощью HttpClient.