तक पहुंचें मेरे पास एक अद्वितीय आईडी के साथ div
है। div
के तहत span
तत्वों का एक समूह है जिसमें className=foo
है। className=foo
के साथ कई span
तत्व हैं लेकिन वे प्रत्येक div
(यदि यह स्पष्ट है) के लिए अद्वितीय हैं। तो मेरी सेलेनियम कोड पहले अद्वितीय div
हो जाता है के रूप में एक वेब तत्व तो उस तत्व लेने के लिए और वर्ग के नाम से प्राप्त करने के लिए span
तोसेलेनियम वेबड्राइवर एक उप तत्व
element = sDriver.findElement(By.id("c_"+cID));
String sTest = element.findElement(By.className("actions")).getText();
दूसरी पंक्ति में यह एक अपवाद हर बार फेंकता तरह की कोशिश करता है
org.openqa.selenium.StaleElementReferenceException: Element not found in the cache - perhaps the page has changed since it was looked up
Command duration or timeout: 22 milliseconds
क्या मुझे गलत लगता है कि span
को एक अद्वितीय div
के अंतर्गत से कैसे प्राप्त करें?
आप यहां [संभावित समाधान] (http://stackoverflow.com/a/7474518/1077279) के लिए भी जांच सकते हैं। – shamp00
ऐसा लगता है कि अगर मैं नींद डालता हूं और कुछ सेकंड इंतजार करता हूं तो यह ठीक काम करता है। यह बताने का कोई अच्छा तरीका नहीं है कि पृष्ठ पूरी तरह से लोड हो गया है, मुझे लगता है कि दुर्भाग्यवश मुझे केवल नींद का उपयोग करने की आवश्यकता है – ducati1212
आप दोनों नींद को जोड़ सकते हैं और अपवाद को पकड़ सकते हैं। नींद के बिना दोनों तत्वों को पहले स्थान पर एक्सेस करने का प्रयास करें और जब यह विफल हो जाए तो नींद का उपयोग करें और बाद में पुनः प्रयास करें – chaosr