Bir web albümü uygulaması için bir Selenium testi paketi oluşturuyorum. Bir görüntünün gerçekten gösterilip gösterilmediğini test etmek istiyorum (geçerli resim verileri içeriyor). Böyle bir şey mümkün mü?Selenyum - bir resmin görüntülenip görüntülenmediğini kontrol edin
cevap
Bu benzer durumu, görüntünün src'sinin beklendiği gibi olduğundan, ancak görüntü sayfada görüntülenmediğinden dolayı karşılaştım.
Görüntünün görüntülenip görüntülenmediğini JavaScriptExcecutor kullanarak kontrol edebilirsiniz. WebElement (görüntü) geçirin - -
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);
}
görüntü aslında bunu yaparak web sayfasında yüklendiği yaptıysa doğrulayabilirsiniz
aşağıdaki kodu kullanın.
Görüntünün sayfa kaynağında göründüğünü kesinlikle kontrol edebilirsiniz örn. XPath parametresi kullanılarak.
Bunu, sayfa kaynağında olduğu için görüntüleneceğini, ancak bunu doğrulamanın herhangi bir yolunu bilmediğimi varsayabilirsiniz.
Galeri sayfası üretildiğinde durum iyi, ancak resmin kendisi geçersizdir - örneğin resim komut dosyasında istisna nedeniyle. –
TestPlan ön ucunu Selenium'da kullanmak için birkaç seçenek var. Resmin URL'sine sahip olduğunuzda, bu URL'yi alabilir ve iade edilen başlıkları inceleyebilirsiniz. manuel olarak incelemek isterseniz, verileri bir dosyaya da kaydedebilirsiniz. Ya da bu verileri almak için Java'da bir doğrulayıcı yazabilir ve gerçekten deşifre edip etmediğini kontrol edebilirsiniz.
Denemeye hazırsanız, size bir örnek komut dosyası yazacağım. İsterseniz hızlı bir görüntü doğrulama işlevi bile yapabilirim.
Bu yazılım ilginç görünüyor, ancak Bromine fron-end kullanmak zorundayım. Şirketimiz, bazı kişisel çalışma saatlerini zaten özelleştirerek, görüntü testinin geçerli olmaması nedeniyle bu işi terk etti. İpucu için teşekkürler. –
Java kullanıyorsanız, selenyumun eval
veya benzeri bir yöntemi vardır. Ona bir javascript dizesi verirsiniz ve size bir ip olarak sonuç verir. Örneğin, bu (bir çizgi) deneyebilirsiniz:
var req = new XMLHttpRequest();
req.open('get', document.getElementById('imageid').src, false);
req.send(null);
req.status==200
Bu durum 200 veya başka bir şey için "yanlış" için "doğru" dönmelidir.
Görüntünün kimliği yoksa ne yapmalı? Görüntünün adı ve sınıfı var - Bu durumda ne yapmalı? –
- 1. Espresso 2.2.1 - Parça düzeninin görüntülenip görüntülenmediğini kontrol edin
- 2. Mevcut bir iletişim kutusunun görüntülenip görüntülenmediğini bilmek için basit bir yol var mı?
- 3. Kontrol elemanı selenyum
- 4. Karınca kullanarak, bir dosyada belirli bir dizenin bulunup bulunmadığını kontrol edin
- 5. Öğenin selenyumda tıklanabilir olup olmadığını kontrol edin
- 6. /kontrol veya denetlenmeyen selenyum içinde
- 7. Geçerli bir tarih kontrol edin
- 8. Bir resmin
- 9. Bir web sitesinde bir resmin bulunup bulunmadığı nasıl kontrol edilir?
- 10. JavaScript'de tarih kontrol edin
- 11. Precompile'da ARC'yi kontrol edin
- 12. Python - rutini kontrol edin
- 13. $ null hızda kontrol edin
- 14. Dizin boşsa kontrol edin
- 15. C# Başka bir resmin içinde görüntünün olup olmadığını kontrol etme
- 16. Selenyum WebDriver
- 17. Android - Radyo kontrol düğmesini kontrol edin
- 18. Amaç-C tipi bir blok kontrol edin?
- 19. Türün bir arabirim olup olmadığını kontrol edin
- 20. CMake bir yerel dosya olduğunu kontrol edin
- 21. Belirli bir tarihin geçip geçmediğini kontrol edin
- 22. Çantada bir eleman bulunup bulunmadığını kontrol edin.
- 23. Cassandra'da bir satır TTL kontrol edin?
- 24. Olayın bir insan tarafından tetiklendiğini kontrol edin
- 25. Bir sayfanın açık olup olmadığını kontrol edin
- 26. CodeIgniter'deki bir görünümden oturumu kontrol edin
- 27. Bir telefonun SMS gönderebileceğini kontrol edin
- 28. Bir dosyanın açık olduğunu kontrol edin
- 29. Değişkenin bir sayı olduğunu kontrol edin
- 30. Listenin bir türü olup olmadığını kontrol edin?
Teşekkür ederim, bu aylar sonra herkesin çözüm bulmasını beklemiyordum. Tüm görüntülerin sayfada mevcut olduğunu kontrol etmek için bu kodu kullandım: 'var elems = document.getElementsByTagName (" img "); var allOk = true; (var i = 0; i 0; konsol. log (elems [i] .naturalWidth);} allOk; '. –
Hoşgeldiniz. Sorunu çözdüğüne sevindim. –
Harika iş! Bir not: Geliştiricilerin 400px'lik bir yer tutucu resmi vardır ve siz buna kaydırırken tembel yüklü görüntü ile değiştirirler. Yani son test benim için argümanlar [0] .naturalWidth! = 400'. Yardım için cihazlarınızı kontrol edin. – SiKing