ठीक है, तो, मेरे पास यह कोड है:
Cypress.Commands.add ('MethodName', (argument) => {
var Fails = 0
cy.get('anything').each(Id => {
if (blablabla) {
Fails += 1
cy.log("Inside the each: " + Fails) //prints 1
}
})
cy.log("Outside the each: " + Fails) //prints 0
});
मैं प्रत्येक आइटम का परीक्षण करना चाहता हूं और यदि कोई शर्त गलत है, तो मैं चर "विफल" में 1 जोड़ना चाहता हूं।
फिर, अंत में, यदि विफल 0 है, तो कोई त्रुटि नहीं है, और मैं चाहता हूं कि यह "कोई विफल नहीं" संदेश लॉग करे। समस्या यह है कि, भले ही वेरिएबल EACH के अंदर 1 में बदल जाता है, जब यह बाहर होता है, तो यह वापस 0 पर आ जाता है।
यह मेरे लिए बहुत निराशाजनक है, क्योंकि मैं सी # कोड लिखता था और सी # में, यह काम करेगा, क्योंकि चर की घोषणा प्रत्येक के बाहर है।
तुम लोगों का क्या सुझाव है?
1 उत्तर
जावास्क्रिप्ट अतुल्यकालिक रूप से चलता है जिसका अर्थ है कि आपके कोड क्रम में नहीं चलते हैं। तो आपके मामले में क्या हो रहा है Outside the each:
पहले निष्पादित हो रहा है और उसके बाद Inside the each:
निष्पादित किया जा रहा है। यह सुनिश्चित करने के लिए कि प्रत्येक के बाहर प्रत्येक के अंदर के बाद चलता है, आपको then()
का उपयोग करना होगा।
Cypress.Commands.add('MethodName', (argument) => {
var Fails = 0
cy.get('anything').each(Id => {
if (blablabla) {
Fails += 1
cy.log("Inside the each: " + Fails)
}
}).then(() => {
cy.log("Outside the each: " + Fails)
})
})
संबंधित सवाल
नए सवाल
variables
यह असामान्य है; उपयोग विशेष-भाषा का उपयोग कब लागू होता है। एक चर स्मृति में एक नामित डेटा भंडारण स्थान है। चरों का उपयोग करते हुए, एक कंप्यूटर प्रोग्राम नंबर, टेक्स्ट, बाइनरी डेटा या इनमें से किसी भी डेटा प्रकार के संयोजन को स्टोर कर सकता है। उन्हें कार्यक्रम में चारों ओर से पारित किया जा सकता है।