Принятый ответ требует, чтобы вы использовали прокси-сервер с дополнительным вызовом для каждого изображения, чтобы определить, не сломаны ли изображения.
К счастью, есть еще один способ, которым Вы можете сделать это, используя только JavaScript (я использую Ruby, но вы можете использовать один и тот же код в любом executeScript
методе через WebDriver привязок):
images = @driver.find_elements(:tag_name => "img")
broken_images = images.reject do |image|
@driver.execute_script("return arguments[0].complete && typeof arguments[0].naturalWidth != \"undefined\" && arguments[0].naturalWidth > 0", image)
end
# broken_images now has an array of any images on the page with broken links
# and we want to ensure that it doesn't have any items
assert broken_images.empty?
К вашему другому вопросу, я бы порекомендовал просто снять скриншот страницы и с помощью человека проверить, что полученный скриншот имеет правильные изображения. Компьютеры могут выполнять работу по автоматизации, но люди должны периодически проверять и проверять свои результаты :)
Hi Johnbo, одно изображение с именем «MyImage.jpg», первый раз, когда я выполняю свой тестовый скрипт MyImage. ok через некоторое время изменения разработчика на сайте и этот «MyImage» заменяется другим изображением с таким же именем, как «MyImage» (папка с изображениями). Теперь мы выполним тестовый скрипт MyImage, найденный и наш тестовый скрипт. но на самом деле это ошибка, потому что в UI появляется другое изображение. Спасибо за ваш быстрый ответ. – Chetan
Как я вижу, вам нужно сохранить изображение в первом исполнении, чтобы вы могли сравнить его в следующий раз, потому что с точки зрения HTML страница может быть точно такой же, и Selenium не сможет найти разницу в изображениях , Или, может быть, вы можете использовать Selenium в сочетании с инструментом распознавания изображений, например Sikuli Script. – Johnbo
Я согласен, но все изображения с веб-страницы хранятся, а затем сравниваются, а это не хорошо по производительности. мы можем играть с размером изображения (т. е. мы можем сохранить размер изображения и сравнить размер изображения в следующий раз). любая идея, пожалуйста, предложите. – Chetan