2013-01-25 29 views
5

का उपयोग कर रहा हूं, मैंने एक विशिष्ट फ्रेम लोड करने के लिए प्रतीक्षा करने के लिए वेबड्राइवर समर्थित सेलेनियम का उपयोग किया था। चूंकि कुछ मामलों में एक विशिष्ट फ्रेम में स्विचिंग विफल हो जाती है क्योंकि फ्रेम लोड नहीं होता है। कोड का उपयोग मैंमैं एक विशिष्ट फ्रेम को लोड करने के लिए कैसे प्रतीक्षा करूं? मैं सेलेनियम वेबड्राइवर 2.24

selenium.waitForFrameToLoad(frameJCLeft, strTimeOut); 
driver.switchTo().defaultContent(); 
driver.switchTo().frame(frameJCLeft); 

है कृपया मुझे पता है कि वहाँ एक विधि के रूप में मैं सेलेनियम समर्थित webdriver खत्म करने के लिए और केवल webdriver एपीआई

उत्तर

20

आप इसे प्राप्त करने के लिए वेब चालक प्रतीक्षा और अपेक्षित हालत वर्ग का उपयोग कर सकते हैं।

इस कोड को आज़माएं।

WebDriverWait wait = new WebDriverWait(driver,10); 
    wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(frameName); 

उपरोक्त कोड given frame up to 10 seconds के लिए प्रतीक्षा करेगा। यदि फ्रेम उपलब्ध है तो यह दिए गए फ्रेम पर स्विच हो जाता है। अन्यथा, यह TimeoutException फेंकता है।

समय सीमा एप्लिकेशन और उपयोगकर्ता की इच्छा पर निर्भर करती है।

अधिक जानकारी के लिए http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/support/ui/ExpectedConditions.html#frameToBeAvailableAndSwitchToIt(java.lang.String)

+0

धन्यवाद @ मणिगंदन, आपका समाधान ठीक काम करता है –

+0

कृपया इसे उत्तर के रूप में बनाएं। – Manigandan

+0

धन्यवाद! मेरे लिए एक आकर्षण की तरह काम किया! –

0

मैं सेलेनियम 2 का उपयोग करने के लिए स्विच जाएगा का उपयोग की योजना बना रहा हूँ अगर, और "WebDriver समर्थित सेलेनियम 1.0 सामान" के बजाय RemoteWebDriver का उपयोग करें। फिर, मैं WebDriver.TargetLocator के साथ खेलूँगा।

+0

के रूप में मैं उल्लेख मैं वास्तव में क्या कर रहा हूँ, लेकिन मैं cudnt, सही उम्मीद इंतजार हालत लगता है वैसे भी के लिए धन्यवाद "मैं सेलेनियम समर्थित webdriver खत्म करने के लिए और केवल webdriver एपीआई का उपयोग की योजना बना रहा हूँ" उत्तर साथी –

+0

क्या आपने अपनी खुद की फ़्रेमलोड() विधि बनाने की कोशिश की है जो फ्रेम में दिखाई देने के लिए पृष्ठ शीर्षक या किसी अन्य अपेक्षित ऑब्जेक्ट को अवरुद्ध करता है और प्रतीक्षा करता है? ऐसा कुछ करने के साथ, जब आप स्थानीय रिमोट वेब ड्राइव पर स्विच करते हैं तो आप इसका पुन: उपयोग कर सकते हैं। – djangofan