पर प्रदर्शित होती है या नहीं, मैं वेब एल्बम एप्लिकेशन के लिए सेलेनियम परीक्षणों का एक सूट बना रहा हूं। मैं यह जांचना चाहता हूं कि एक छवि वास्तव में प्रदर्शित होती है (इसमें वैध छवि डेटा होता है)। क्या ऐसी चीज संभव है?सेलेनियम - जांचें कि कोई छवि पृष्ठ
उत्तर
मुझे इस तरह की स्थिति का सामना करना पड़ा जहां से छवि का स्रोत अपेक्षित है लेकिन छवि पृष्ठ पर प्रदर्शित नहीं होती है।
आप यह जांच सकते हैं कि छवियां प्रदर्शित हो रही हैं या नहीं जावास्क्रिप्ट एक्स्सेक्टर का उपयोग कर। WebElement (छवि) में बताएं - -
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);
}
यदि छवि वास्तव में ऐसा करने से वेब पेज पर लोड होने के आप सत्यापित कर सकते
निम्न कोड का प्रयोग करें।
आप निश्चित रूप से जांच सकते हैं कि छवि पृष्ठ स्रोत में दिखाई देती है उदा। एक XPath पैरामीटर का उपयोग करके।
आप यह मान सकते हैं कि यह पृष्ठ स्रोत में है, यह प्रदर्शित होगा लेकिन मुझे वास्तव में इसे सत्यापित करने के किसी भी तरीके से नहीं पता है।
स्थिति है, जब गैलरी पृष्ठ उत्पन्न होता है ठीक है, लेकिन छवि स्वयं ही अमान्य है - उदाहरण के लिए छवि स्क्रिप्ट में अपवाद के कारण। –
यदि आप सेलेनियम में TestPlan फ्रंटेंड का उपयोग करने के इच्छुक हैं तो कुछ विकल्प हैं। एक बार जब आप छवि का यूआरएल प्राप्त कर लेते हैं तो आप इस यूआरएल को पकड़ सकते हैं और लौटे हेडर का निरीक्षण कर सकते हैं। यदि आप मैन्युअल रूप से इसका निरीक्षण करना चाहते हैं तो आप डेटा को फ़ाइल में भी सहेज सकते हैं। या आप उस डेटा को लेने के लिए जावा में एक सत्यापनकर्ता लिख सकते हैं और यह देखने के लिए जांच सकते हैं कि यह वास्तव में डीकोड करता है या नहीं।
यदि आप इसे आजमाने की इच्छा रखते हैं तो मैं आपको एक नमूना स्क्रिप्ट लिखूंगा। यदि आप चाहें तो मैं एक त्वरित छवि सत्यापनकर्ता फ़ंक्शन भी कर सकता हूं।
यह सॉफ्टवेयर दिलचस्प लग रहा है, लेकिन मैं ब्रोमाइन फ्रॉन-एंड का उपयोग करने के लिए बाध्य हूं। हमारी कंपनी ने पहले ही कुछ मैन-घंटे इसे अनुकूलित कर लिया है और छवि-परीक्षण की वजह से उस काम को डंप करना व्यवहार्य नहीं है। हालांकि टिप के लिए धन्यवाद। –
यदि आप जावा का उपयोग कर रहे हैं, सेलेनियम में eval
नामक एक विधि है। आप इसे जावास्क्रिप्ट स्ट्रिंग देते हैं और यह आपको स्ट्रिंग के रूप में परिणाम देता है। उदाहरण के लिए, आप इस (में एक पंक्ति) की कोशिश कर सकते:
var req = new XMLHttpRequest();
req.open('get', document.getElementById('imageid').src, false);
req.send(null);
req.status==200
यह स्थिति 200 या कुछ और के लिए "गलत" के लिए वापस आ जाएगी "सही"।
यदि छवि में कोई आईडी नहीं है तो क्या करें? छवि का नाम और वर्ग है - उस मामले में क्या करना है? –
- 1. जांचें कि पृष्ठ
- 2. Magento - जांचें कि सीएमएस पृष्ठ
- 3. जांचें कि छवि एक जेपीईजी
- 4. जांचें कि कोई ऑब्जेक्ट
- 5. जांचें कि कोई विशिष्ट टैब पृष्ठ चुना गया है (सक्रिय)
- 6. जांचें कि छवि मौजूद है php
- 7. जांचें कि क्या पृष्ठ आईफोन होमस्क्रीन
- 8. Django: जांचें कि कोई विशेष यूआरएल
- 9. एएसपीनेट जांचें कि पृष्ठ http या https
- 10. जांचें कि कोई चर Twig
- 11. जांचें कि कोई फ़ाइल वाइल्डकार्ड
- 12. जांचें कि कोई प्रकार इंटरफ़ेस
- 13. जांचें कि कोई संख्या पाइथन
- 14. जांचें कि कोई चर plsql
- 15. जांचें कि कोई मान LINQ
- 16. जांचें कि कोई सूची है
- 17. जांचें कि कोई फ़ाइल Yii
- 18. सेलेनियम वेबड्राइवर पृष्ठ लोड
- 19. jQuery: जांचें कि छवि मौजूद है
- 20. जांचें कि कोई पृष्ठ अभिभावक है या यह बच्चा पृष्ठ है या नहीं?
- 21. जांचें कि क्या कोई ऑब्जेक्ट VBScript
- 22. कैसे जांचें कि क्या Google सड़क दृश्य छवि API कोई छवि नहीं लौटाता है?
- 23. जांचें कि तत्व मौजूद है
- 24. जांचें कि कोई फॉर्म इनपुट मौजूद है
- 25. जांचें कि कोई फ़ैश बैश स्क्रिप्ट
- 26. जांचें कि कोई प्रोग्राम एक पायथन लिपि
- 27. जांचें कि कोई node.js मॉड्यूल उपलब्ध है
- 28. जांचें कि कोई स्ट्रिंग एक्सएमएल स्वरूपित है
- 29. जांचें कि कोई स्ट्रिंग एक यूआरएल है
- 30. पायथन: जांचें कि कोई ऑब्जेक्ट अनुक्रम है
धन्यवाद, मुझे उम्मीद नहीं थी कि इस महीने के बाद कोई भी कामकाजी समाधान पोस्ट करेगा। मैं इस कोड का उपयोग करके यह जांचने के लिए समाप्त हुआ कि सभी छवियां पृष्ठ पर मौजूद हैं: 'var elems = document.getElementsByTagName ("img"); var allOk = सत्य; के लिए (var i = 0; i 0; कंसोल। लॉग (elems [i]। प्राकृतिकविड्थ);} allOk; '। –
आपका स्वागत है। खुशी है कि यह आपकी समस्या हल हो गई। –
महान काम! एक नोट: हमारे देवताओं में प्लेसहोल्डर छवि है जो 400 पीएक्स है, और जब आप इसे स्क्रॉल करते हैं तो वे आलसी लोड छवि के साथ इसे स्वैप करते हैं। तो आखिरी टेस्ट, मेरे लिए, तर्क है [0]। प्राकृतिकविड्थ! = 400'। मदद के लिए अपने देवताओं के साथ जांचें। – SiKing