2012-07-12 19 views
11

के इंतजार किए बिना पृष्ठ पर जाता है मैं अजगरियम आरआई परीक्षणों को अजगरियम वेबीवर से अजगर का उपयोग कर अनुवाद कर रहा हूं। सेलेनियम वेबड्राइवर में, मुझे लगता है कि driver.get('http://...') आगे बढ़ने से पहले पूरे पृष्ठ को लोड करने की प्रतीक्षा कर रहा है। क्या पृष्ठ को लोड करने की प्रतीक्षा करने का कोई तरीका नहीं है? जिन पृष्ठों का मैं अनुरोध कर रहा हूं उनमें से कुछ बाहरी संसाधन हैं जो लोड करने में काफी समय लग सकते हैं। मैं डीओएम पर तत्वों को लोड करने के लिए प्रतीक्षा करने के बजाय उपस्थित होने के लिए इंतजार करना चाहता हूं। ऐसा लगता है कि मेरे कुछ परीक्षण वेबड्राइवर में दो बार लगते हैं।सेलेनियम वेबड्राइवर पृष्ठ लोड

+1

आप @Slanec दोनों भयानक हैं। मेरी कठिन खोज एक सुखद निष्कर्ष पर आ गई है। –

उत्तर

13

हां और नहीं। सेलेनियम 2.24.1, the support for this is only in Firefox - you have to run it in a special "mode" के रूप में:

FirefoxProfile fp = new FirefoxProfile(); 
fp.setPreference("webdriver.load.strategy", "unstable"); 
WebDriver driver = new FirefoxDriver(fp); 

तुम भी the timeout if you want to सेट कर सकते हैं। इस विधि Firefox के अलावा किसी भी ब्राउज़र में विफल रहता है और अस्थिर रणनीति के बिना Firefox में कुछ नहीं करता है:

driver.manage().timeouts().pageLoadTimeout(5, TimeUnit.SECONDS); 
+1

धन्यवाद। मेरे सवाल का जवाब पूरी तरह से। – Jackson

+0

इसके अलावा, जब आप अपने अपेक्षित पृष्ठ पर ऑब्जेक्ट्स के लिए मतदान करते हैं, तो अगर आप findElement() के बजाय findElements() का उपयोग करते हैं, तो आप 'अगर findElements() = 0 कोशिश करते रहें' जैसे कुछ उपयोग करके शून्य पॉइंटर्स से बच सकते हैं। – djangofan

+0

पेज लोड टाइमआउट के लिए पायथन समकक्ष कोड क्या है? –

संबंधित मुद्दे