Câu trả lời được chấp nhận yêu cầu bạn sử dụng proxy có thêm cuộc gọi đến từng hình ảnh để xác định xem hình ảnh có bị hỏng hay không.
May mắn thay, có một cách khác bạn có thể làm điều này chỉ sử dụng javascript (Tôi đang sử dụng Ruby, nhưng bạn có thể sử dụng cùng mã trong bất kỳ phương pháp executeScript
qua bindings 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?
Đối với câu hỏi khác của bạn, tôi khuyên bạn chỉ nên chụp ảnh màn hình của trang và có một con người bằng tay xác minh ảnh chụp màn hình kết quả có hình ảnh chính xác. Máy tính có thể thực hiện công việc tự động hóa, nhưng con người phải kiểm tra và xác minh kết quả của nó theo thời gian :)
Hi Johnbo, một hình ảnh có tên là "MyImage.jpg", lần đầu tiên tôi đang thực hiện tập lệnh thử nghiệm MyImage được tìm thấy. ok sau khi một số nhà phát triển thay đổi thời gian trên trang web và "MyImage" này được thay thế bằng hình ảnh khác có cùng tên với "MyImage" (Trên thư mục hình ảnh). Bây giờ, chúng tôi thực thi tập lệnh thử nghiệm MyImage đã tìm thấy và đoạn mã thử nghiệm của chúng tôi đã qua. nhưng thực ra nó là lỗi bởi vì trong giao diện người dùng, một hình ảnh khác được hiển thị. Cảm ơn bạn đã trả lời nhanh chóng. – Chetan
Như tôi thấy, bạn cần lưu trữ hình ảnh trong lần thực hiện đầu tiên để bạn có thể so sánh nó lần sau, vì từ điểm HTML của trang có thể giống hệt nhau và Selenium sẽ không thể tìm thấy hình ảnh khác biệt . Hoặc có thể bạn có thể sử dụng Selenium cùng với một công cụ nhận dạng hình ảnh như Sikuli Script. – Johnbo
tôi đồng ý nhưng tất cả các hình ảnh từ trang web là lưu trữ và sau đó so sánh, nó không tốt theo hiệu suất. chúng tôi có thể phát với kích thước hình ảnh (nghĩa là chúng tôi có thể lưu trữ kích thước hình ảnh và so sánh kích thước hình ảnh trong lần tiếp theo). bất kỳ ý tưởng xin đề nghị. – Chetan