यहां मेरे पास मेरे कोड की छवि और मेरी त्रुटि की छवि है। क्या कोई इस मुद्दे को हल करने में मेरी मदद कर सकता है?

enter image description here

enter image description here

31
Aarthi 9 मई 2017, 13:59
आपको उस तत्व को अलग करने का प्रयास करना चाहिए जिसके साथ आप बातचीत करना चाहते हैं। आपके कोड में टैग वाले कई तत्व हैं; तो यह बेहतर है यदि आप उस तत्व के लिए विशिष्ट पथ का उपयोग करते हैं
 – 
kushal.8
9 मई 2017, 18:09
8
कृपया टेक्स्ट की इमेज पोस्ट न करें, बल्कि टेक्स्ट के रूप में रखें।
 – 
SiKing
10 अगस्त 2017, 01:18

3 जवाब

असल में अपवाद Element Not Visible है

ड्राइवर इंस्टेंटेशन के नीचे उपयोगकर्ता Implicit wait के लिए सबसे अच्छा अभ्यास है ताकि इसे अपवाद के माध्यम से पहले पर्याप्त समय ठीक तत्व मिल सके

driver.get("http://www.testsite.com");
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 

अभी भी समस्या का सामना करना पड़ रहा है क्योंकि कुछ तत्वों को कुछ शर्तों को पूरा करने के लिए अलग-अलग तत्व के लिए उपयोगकर्ता ExplicitWait के लिए अधिक समय की आवश्यकता होती है

आपके मामले में आप तत्व not visible exception का सामना कर रहे हैं, तो निम्नलिखित तरीके से प्रतीक्षा स्थिति का उपयोग करें

WebDriverWait wait = new WebDriverWait(driver, 120);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.your_Elemetnt));
1
NarendraR 9 मई 2017, 14:44
मैं भी वो वाला। लेकिन यह काम नहीं करता है। क्या आप कृपया मुझे इस मुद्दे को हल करने का कोई और तरीका बता सकते हैं?
 – 
Aarthi
10 मई 2017, 14:18
निहित प्रतीक्षा सर्वोत्तम अभ्यास नहीं है। वास्तव में सेलेनियम योगदानकर्ताओं द्वारा इसके उपयोग की अनुशंसा की जाती है। आधिकारिक दस्तावेज़ों में निहित और स्पष्ट प्रतीक्षा के मिश्रण को भी चेतावनी दी जाती है।
 – 
JeffC
4 नवम्बर 2017, 06:56

मुझे यह इसलिए मिला क्योंकि जिस तत्व के साथ मैं बातचीत करना चाहता था वह किसी अन्य तत्व द्वारा कवर किया गया था। मेरे मामले में यह सब कुछ r/o बनाने के लिए एक अपारदर्शी ओवरले था।

किसी अन्य तत्व के तहत एक तत्व पर क्लिक करने का प्रयास करते समय हम सामान्य रूप से "... अन्य तत्व को क्लिक प्राप्त होगा" लेकिन हमेशा नहीं :.(

1
ProgrammingRookie 11 जून 2019, 23:31

जावास्क्रिप्ट के लिए इसका समाधान इस तरह दिखता है। आपको अपनी आवश्यकता के अनुसार समय में संशोधन करना होगा।

driver.manage().setTimeouts({ implicit: 30000 });

आशा है कि यह किसी के लिए मददगार है। इसके लिए दस्तावेज़ देखें। संदर्भ

0
tutug 5 जून 2019, 21:23
2
किसी ईवेंट की प्रतीक्षा करने के लिए कभी भी नींद () या सेटटाइमआउट () का उपयोग न करें। यह एक बुरा अभ्यास है और आप एक ऐसी स्थिति के साथ समाप्त हो जाएंगे जहां आपका कोड बेतरतीब ढंग से काम करना बंद कर देता है जब आप इसे एक नई मशीन पर तैनात करते हैं, लेकिन यह तब तक पूरी तरह से काम कर रहा था। घटनाओं को प्रतीक्षा संचालन द्वारा नियंत्रित किया जाना चाहिए, जैसे ही शर्त पूरी हो गई है या समय समाप्त हो गया है, जैसे ही आपके कोड को जगाने के लिए डिज़ाइन किया गया है।
 – 
Mladen B.
14 जून 2019, 15:59