मेरी भी यही समस्या थी। मेरे लिए, उपयोगकर्ता के अनुमति स्तर के आधार पर, कुछ लिंक, बटन और अन्य तत्व पृष्ठ पर नहीं दिखाए जाएंगे। मेरे सूट का एक हिस्सा परीक्षण कर रहा था कि जिन तत्वों को गायब किया जाना चाहिए, वे गायब हैं। मैंने घंटों यह जानने की कोशिश की। मुझे आखिरकार सही समाधान मिल गया।
यह क्या करता है, ब्राउज़र को निर्दिष्ट किसी भी और सभी तत्वों को देखने के लिए कहता है। यदि इसका परिणाम होता है 0
, तो इसका मतलब है कि विनिर्देश के आधार पर कोई तत्व नहीं मिला। फिर मुझे पता है कि यह नहीं पाया गया था, तो एक कोड स्टेटमेंट निष्पादित करें।
यह अंदर है C#
, इसलिए अनुवाद करने की आवश्यकता होगी Java
। लेकिन बहुत कठिन नहीं होना चाहिए।
public void verifyPermission(string link)
{
IList<IWebElement> adminPermissions = driver.FindElements(By.CssSelector(link));
if (adminPermissions.Count == 0)
{
Console.WriteLine("User's permission properly hidden");
}
}
वहाँ भी एक और रास्ता आप अपने परीक्षण के लिए की जरूरत पर निर्भर करता है ले सकते हैं।
निम्नलिखित स्निपेट यह देखने के लिए जाँच कर रहा है कि क्या पृष्ठ पर एक बहुत विशिष्ट तत्व मौजूद है। तत्व के अस्तित्व पर निर्भर करता है कि मेरे पास परीक्षण एक और है।
यदि तत्व मौजूद है और पृष्ठ पर प्रदर्शित होता है, तो console.write
मुझे पता है और मुझे आगे बढ़ना है। यदि प्रश्न में तत्व मौजूद है, तो मैं अपनी ज़रूरत के परीक्षण का निष्पादन नहीं कर सकता, जो इसे स्थापित करने की आवश्यकता के पीछे मुख्य तर्क है।
यदि तत्व मौजूद नहीं है, और पृष्ठ पर प्रदर्शित नहीं होता है। मैं अगर परीक्षण को निष्पादित करने में दूसरा है।
IList<IWebElement> deviceNotFound = driver.FindElements(By.CssSelector("CSS LINK GOES HERE"));
//if the element specified above results in more than 0 elements and is displayed on page execute the following, otherwise execute whats in the else statement
if (deviceNotFound.Count > 0 && deviceNotFound[0].Displayed){
//script to execute if element is found
} else {
//Test script goes here.
}
मुझे पता है कि ओपी की प्रतिक्रिया पर मुझे थोड़ी देर हो गई है। उम्मीद है कि यह किसी की मदद करता है!