Как проверить отображение картинки на странице WebDriver?
Всем привет ! В общем есть страница профиля пользователя. На этой странице можно добавлять аватар юзера, и обложку страницы. Надо проверить:
1. Загрузилась ли картинка при загрузке. Кликаем на плюсик, выбираем картинку на компьютере, после загрузки появилась кнопка "Обрезать"
2. Отображается ли картинка на странице. После того как добавили картинку в аватар, и обрезали ее, необходимо обновить страницу, и убедиться в том что картинка на месте.
Первое я уже проверил, методом проб и ошибок, я нашел нужный мне class с фото. А во втором случае, я не могу найти ни Xpath ни css ни class
Вот код проверки отображения фото
public void testImage(String img) {
WebElement image = byClassName(""+ img +"", "checking for the presence of images");
String js = "return (typeof arguments[0].naturalWidth!=\"undefined\" && arguments[0].naturalWidth>0)";
Boolean isImageDisplayed = (Boolean) ((JavascriptExecutor) driver).executeScript(js, image);
assertTrue(isImageDisplayed);
System.out.println(isImageDisplayed);
}
Вот сам код целиком
public void CoverAndAvatarProfile(String user, String password) throws Exception {
app.reg().regNewUserMail(user, password);
app.icons().profile().click();
edit().click();
cover().click();
app.addFiles().AddFiles("photo1.jpg"); - добавление фото
app.sleep_time(10000);
app.img().testImage2("//div[2]/div[1]/div[1]/div"); - проверка фото по Xpath (после этого момента false и тест падает) Так же пробовал искать по class и css
addPhoto().click();
app.addFiles().AddFiles("photo.png");
app.img().testImage("crop__Crop__image___24B26"); (тут ищу по class"у, true, находит)
app.magazines().clip().click();
app.sleep_time(2000);
save().click();
driver.navigate().refresh();
app.sleep_time(2000);
edit().click();
cover().click();
app.addFiles().AddFiles("photo4.jpg");
app.sleep_time(2000);
addPhoto().click();
app.addFiles().AddFiles("photo3.jpg");
app.img().testImage("crop__Crop__image___24B26");
app.magazines().clip().click();
save().click();
Наверняка, если картинка не загрузилась, на её месте предусмотрена какая-либо надпись или какая-либо картинка. Попробуйте действовать от противного - если появилась такая надпись (картинка) - тест провален
Второй вариант - использовать тестирование скриншотами, а конкретно - фреймворк A-shot от Яндекса.