2012-04-19 13 views
8

में दृश्यमान सेलेनियम आरसी में तत्व isElementPresent और isVisible के बीच क्या अंतर है। मैं अगर मैं selenium.isElementPresent() के लिए झूठी पानेIsElementPresent के बीच अंतर और सेलेनियम आरसी

selenium.isElementPresent() और selenium.isVisible()

के लिए सच मिल रहा the documentation पढ़ने के बारे में selenium.isVisible()

उत्तर

19

isElementPresent() - इस विधि मूल रूप से परीक्षण करता है, तो तत्व हम देख रहे पृष्ठ पर कहीं मौजूद है। -

isVisible() प्रदर्शन के लिए लग रहा है: कोई नहीं शैली टैग - यह अगर तत्व isElementPresent का उपयोग कर मौजूद है अगर एक तत्व दिखाई पहली जांच है देखने के लिए एक नल पॉइंटर फेंक सकती है अगर हम सावधान नहीं हैं ... इस प्रकार() तरीका। फिर यह जांचने का प्रयास करें कि तत्व दिखाई दे रहा है या नहीं!

यह देखें कि isElementPresent() हमारे तत्व को दिखाई देने पर भी ध्यान नहीं देगा।

पूर्व के लिए:

अब अगर आप

selenium.isElementPresent("testinput") - returns true! 
selenium.isVisible("testinput") - returns false! 
+0

isVisible() को शून्य सूचक अपवाद नहीं मिलेगा। लेकिन यदि तत्व मौजूद नहीं है तो आप सेलेनियम अपवाद प्राप्त कर सकते हैं। सामान्य तकनीक कुछ है जैसे 'selenium.isElementPresent (locator) && selenium.isVisible (locator)) {... कुछ करें ...} '। –

11

कैसे पर अपवाद मिल सकता है?

बूलियन isElementPresent (java.lang.String लोकेटर)

सत्यापन होता है कि निर्दिष्ट तत्व पृष्ठ पर कहीं है।

बूलियन isVisible (java.lang.String लोकेटर)

निर्धारित करता है कि निर्दिष्ट तत्व दिख रहा है। एक तत्व सीएसएस "दृश्यता" संपत्ति को "छुपा" या "प्रदर्शन" संपत्ति को "कोई नहीं" पर सेट करके अदृश्य प्रदान किया जा सकता है, या तो तत्व स्वयं या उसके पूर्वजों के लिए। यदि तत्व मौजूद नहीं है तो यह विधि विफल हो जाएगी।

+2

साथ ऊपर घटक परीक्षण एपीआई खराब तरीके से तैयार लगता है: कहना नीचे अपने परीक्षण आवेदन पर एक घटक के लिए एचटीएमएल कोड है की सुविधा देता है। यदि आप एक दावा चाहते हैं तो आप assertElementIsPresentIsresent या assertIsVisible कहते हैं। यदि लक्ष्य उपलब्ध नहीं है तो क्या विधि अपवाद फेंकना नहीं चाहिए। सवाल एपीआई के असममित डिजाइन से आता है। उस दिन आपको बुरा दिन होना चाहिए था। – boatcoder

संबंधित मुद्दे