2012-11-07 20 views
5

का उपयोग करते समय मैंने सेलेनियम आईडीई में अपना परीक्षण दर्ज किया; यह फ़ायरफ़ॉक्स और क्रोम में ठीक चलाता है। जब मैं इसे आईई 9 में चलाता हूं, तो मुझे यह त्रुटि मिलती है। मैं कोडिंग करने के लिए नया हूं और इसका उत्तर खोजने में परेशानी हो रही है। यदि कोई व्यक्ति मुझे बताए कि क्या हो रहा है/यह क्यों हो सकता है, तो मैं इसकी सराहना करता हूं।सेलेनियम: JUnit4: WebDriver: IE: NoSuchElementException IE

org.openqa.selenium.NoSuchElementException: Unable to find element with css selector == BODY (WARNING: The server did not provide any stacktrace information) 

जावा कोड:

assertTrue(driver.findElement(By.cssSelector("BODY")).getText().matches("^[\\s\\S]*Final[\\s\\S]*$")); 
+0

आप कृपया उर एचटीएमएल कोड पेस्ट कर सकता है यहां आपके वेब पेज के लिए? –

+0

दुर्भाग्य से, मुझे कंपनी नीति द्वारा हमारे कोड को पोस्ट करने की अनुमति नहीं है। मुझे लगता है कि त्रुटि, और जो हो रहा है उसका स्पष्टीकरण पर्याप्त हो सकता है कि किसी ने भी इसी तरह की चीजें देखी हों। हालांकि मैं आपके त्वरित उत्तर की सराहना करता हूं। यह सराहनीय है। – user1806215

+0

स्टैक ओवरफ्लो नीतियों के बारे में क्या? – Amey

उत्तर

0

मैं कॉल करने से पहले driver.getPageSource() बाहर मुद्रण सुझाव है और यदि एचटीएमएल वर्तमान पृष्ठ पर है कि अपनी अपेक्षाओं से मेल खाता है देखने के लिए जाँच करेगा।

यदि यह आपके द्वारा अपेक्षित मिलान से मेल खाता है तो मैं By.cssSelector("BODY") से मेल खाने वाले सभी टैग की टेक्स्ट सामग्री प्रिंट करता हूं और देख सकता हूं कि उनमें से कोई भी टेक्स्ट आपको उम्मीद है या नहीं।

यह त्रुटि को कम कर देगा जहां त्रुटि है - आपको इस तत्व को खोजने का एक और तरीका ढूंढना पड़ सकता है।

0

आंतरिक रूप से इंटरनेट एक्सप्लोरर के साथ XPath और आवरण मामलों का उपयोग करके।

का उपयोग कर

assertTrue(driver.findElement(By.cssSelector("body")).getText().matches("^[\\s\\S]*Final[\\s\\S]*$")); 

बजाय

assertTrue(driver.findElement(By.cssSelector("BODY")).getText().matches("^[\\s\\S]*Final[\\s\\S] 

* $ ")) की कोशिश करें;।

मुझे विश्वास है कि आप के लिए काम करना चाहिए

+0

यह एक पुरानी पोस्ट है, लेकिन सोचा कि यह दूसरों के लिए सहायक हो सकता है। – santon