Селен - проверить, отображается ли изображение на странице - PullRequest
13 голосов
/ 29 октября 2010

Я создаю набор тестов Selenium для приложения веб-альбома. Я хотел бы проверить, действительно ли изображение отображается (оно содержит действительные данные изображения). Возможна ли такая вещь?

Ответы [ 5 ]

20 голосов
/ 03 мая 2012

Я сталкивался с подобной ситуацией раньше, когда src изображения, как ожидалось, но изображение не отображается на странице.

Вы можете проверить, отображается изображение или нет, используя JavaScriptExcecutor.

Используйте следующий код - Передайте вебэлемент (изображение) -

 Object result = ((JavascriptExecutor) driver).executeScript(
   "return arguments[0].complete && "+
   "typeof arguments[0].naturalWidth != \"undefined\" && "+
   "arguments[0].naturalWidth > 0", image);

    boolean loaded = false;
    if (result instanceof Boolean) {
      loaded = (Boolean) result;
      System.out.println(loaded);
    }

Вы можете проверить, действительно ли изображение загружено на веб-страницу, сделав это.

2 голосов
/ 06 ноября 2010

Если вы используете Java, у селена есть метод с именем eval или около того.Вы даете ему строку javascript, а результат выдает в виде строки.Например, вы можете попробовать это (в одну строку):

var req = new XMLHttpRequest();
req.open('get', document.getElementById('imageid').src, false);
req.send(null);
req.status==200

Это должно вернуть "true" для статуса 200 или "false" для чего-то еще.

1 голос
/ 07 апреля 2018

Используйте эту функцию с одним вкладышем:

Boolean isImageLoaded = (Boolean) ((JavascriptExecutor)driver).executeScript("return arguments[0].complete && typeof arguments[0].naturalWidth != \"undefined\" && arguments[0].naturalWidth > 0", imageWebElement);

где:

imageWebElement = WebElement для поиска изображения на странице

isImageLoaded = Результат в булевом (вернуть true, если изображение присутствует, false, если его нет)

1 голос
/ 02 ноября 2010

Если вы хотите использовать интерфейс TestPlan для Selenium, есть несколько вариантов.Получив URL-адрес изображения, вы можете получить этот URL-адрес и проверить возвращаемые заголовки.Вы также можете сохранить данные в файл, если вы хотите проверить их вручную.Или вы можете написать валидатор на Java, чтобы взять эти данные и проверить, действительно ли они декодируются.

Если вы захотите попробовать их, я напишу вам пример сценария.Я могу даже сделать быструю функцию проверки изображения, если хотите.

0 голосов
/ 31 октября 2010

Вы можете убедиться, что изображение появляется в источнике страницы, например с помощью параметра XPath.

Можно предположить, что, поскольку он находится в источнике страницы, он будет отображаться, но я не знаю, как на самом деле это проверить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...