आप 'उपयोगकर्ता को दृश्यमान' कैसे परिभाषित करते हैं? आप इसे जांचने का प्रस्ताव कैसे देते हैं? यदि इसकी ऊंचाई है? अगर यह सीएसएस द्वारा छुपा नहीं है? क्या होगा यदि यह मूल तत्व सीएसएस द्वारा छिपा हुआ है?
सबसे विश्वसनीय तरीका सेलेनियम का उपयोग .Displayed
संपत्ति (यदि आप सी # का उपयोग कर रहे हैं, जावा में कुछ समान है) का उपयोग करना होगा, और इसे jQuery के 'दृश्यमान' चयनकर्ता के साथ संयोजित करें: http://api.jquery.com/visible-selector/। सी # में नीचे उदाहरण।
var element = Driver.FindElement(By.Id("test"));
bool isVisible = element.Displayed;
var javascriptCapableDriver = (IJavascriptExecutor)Driver;
bool jQueryBelivesElementIsVisible = javascriptCapableDriver.ExecuteScript("return $('#myElement').is(:visible);");
bool elementIsVisible = isVisible && jQueryBelievesElementIsVisible;
इससे अधिकांश मामलों में मिल जाएगा।
क्लाइंट साइड कोड के बिना यह संभव नहीं है, या तैयारी में किसी और को यह पता चलता है कि यह सर्वर साइड भाषा में किया जा सकता है, मुझे संदेह है कि यह सुंदर, पठनीय या भरोसेमंद होगा।
http://api.jquery.com/offset/
यह, तथापि, जब खाता सीमाओं, मार्जिन, सामान उस तरह ध्यान में रखकर काम नहीं करेगा:
jQuery offset()
विधि है।
दुर्भाग्य से, जावास्क्रिप्ट के बिना कोई रास्ता नहीं। आप उसे क्यों नहीं चाहते हैं, वैसे भी? [यहां] से कुछ भी है (http://stackoverflow.com/questions/704758/how-to-check-if-an-element-is-really-visible-with-javascript) मदद? –
@Slanec उदाहरण के लिए, मेरे पास एक बग है जहां कुछ खराब सीएसएस के कारण, एक बटन जिसे क्लिक करने की आवश्यकता है, उदाहरण के लिए 110% चौड़ाई व्यूपोर्ट पर है, और अतिप्रवाह छिपाने के लिए सेट है। तो बटन कभी भी क्लिकबेल नहीं होगा, स्क्रॉलिंग या आकार बदलने या कुछ भी नहीं। यह केवल आईई 11 में ही होता है। तो अब मैं एक परीक्षण केस चाहता हूं कि यह सत्यापित करने के लिए कि बटन उत्पाद के लिए प्रतिगमन में जोड़ने के लिए दृश्यमान है। दुर्भाग्य से, isDisplayed() तत्व के लिए सच है। – dmansfield
मैं सीएसएस, जेड-इंडेक्स का उपयोग करके किसी तत्व की दृश्यता की जांच कर रहा हूं। मैं किसी अन्य तत्व की पिछली परत में, तत्व की दृश्यता की जांच कर सकता हूं। – bcrajkumar