/ / पृष्ठ-लोड के लिए प्रतीक्षारत प्रोटेक्टर नहीं - जावास्क्रिप्ट, एसिंक्रोनस, प्रोट्रैक्टर

प्रोट्रैक्टर पेज लोड की प्रतीक्षा नहीं कर रहा है - जावास्क्रिप्ट, एसिंक्रोनस, प्रोट्रैक्टर

मैंने क्लिक करने के लिए प्रोट्रैक्टर के साथ एक मूल परीक्षण बनायाएक तत्व पर और नए पृष्ठ पर अगर दिया गया तत्व मौजूद है, तो जांच करें, लेकिन प्रोट्रैक्टर को प्रतीक्षा नहीं लगती है और यह क्लिक के बाद, लेकिन नए पृष्ठ के लोड होने से पहले ही चलता है। जिस तत्व की मुझे तलाश है, वह दोनों पृष्ठों पर उपलब्ध है, इसलिए नए पृष्ठ के लोड होने से पहले प्रोट्रैक्टर पुराने पृष्ठ पर तत्व को देखता है। क्या कोई मुझे बता सकता है कि मैं क्या गलत कर रहा हूं?

it("should check when new page is loaded", function () {
button.click().then(function (){
return expect(newElement).to.exist;
});

उत्तर:

उत्तर № 1 के लिए 4

सबसे पहले, अपने प्रोटेक्टर कॉन्फ़िगरेशन फ़ाइल में "getPageTimeout" चर जोड़ें।

यदि आप इसे पहले से उपयोग नहीं कर रहे हैं। यह आपके आवेदन में आपके औसत पृष्ठ लोड समय के आधार पर वैश्विक पेज टाइमआउट सेट करना है।

conf.js

getPageTimeout: 120000,//change it based on your app response time

यदि इससे भी मदद नहीं मिलती है तो आप जिस वास्तविक तत्व की तलाश कर रहे हैं, उसकी जाँच करने से पहले अगले पृष्ठ के पृष्ठ शीर्षक (पिछले पृष्ठ से अलग मानकर) को सत्यापित करें।

it("should check when new page is loaded", function () {
button.click().then(function (){
browser.getCurrentUrl();
browser.getTitle().then(function (title) {
expect(title).toEqual("Next Page Title");
});
return expect(newElement.isDisplayed()).toBeTruthy();
});

यहां तक ​​कि अगर यह आपकी मदद नहीं करता है तो आप अपेक्षित शर्तों का उपयोग कर सकते हैं। स्पष्ट रूप से प्रतीक्षा करने के लिए कई पूर्वनिर्धारित शर्तें हैं। यदि आप किसी तत्व के उपस्थित होने की प्रतीक्षा करना चाहते हैं:

var EC = protractor.ExpectedConditions;

var e = element(by.id("xyz"));
browser.wait(EC.presenceOf(e), 10000);

expect(e.isPresent()).toBeTruthy();

जवाब के लिए 0 № 2

आप कॉन्फ़िगरेशन फ़ाइल में नीचे दी गई विधि का उपयोग कर सकते हैं

चमेलीनोड्स: {

प्रदर्शनकारियों: सच,

includeStackTrace: true,

defaultTimeoutInterval: 1440000

},

और Spec फ़ाइल में आप पृष्ठ और ऑब्जेक्ट दृश्यता के अनुसार प्रतीक्षा समय को अनुकूलित कर सकते हैं

browser.sleep (20000);

मुझे उम्मीद है कि उपरोक्त विधि सभी मामलों में ठीक काम करेगी यदि आप प्रतीक्षा समय को ठीक से अनुकूलित करते हैं।