यह मेरा कार्य है और शर्त पूरी होने पर मैं लू को तोड़ना चाहता हूं, लेकिन मुझे एक त्रुटि मिल रही है:

सिंटैक्स त्रुटि: अवैध ब्रेक स्टेटमेंट

मैं जावास्क्रिप्ट के साथ चांदा का उपयोग कर रहा हूँ।

async CompareTableData(byElement, param) {
  try {
    await this.WaitToBeClickable(element(By.cssContainingText(byElement.value, param)));
    await element.all(byElement).then(async function(item) {
      for (var i = 0; i < item.length; i++) {
        item[i].getText().then(async function(text) {
          var trimTxt = text.trim();
          if (await trimTxt == param && byElement.using == "css selector") {
            console.log(`Param FOUND! ${param}\n`);
            await expect(element(By.cssContainingText(byElement.value, param)).isPresent()).toBe(true);
            break;
          } else {
            return;
          }
        });
      }
    });
  } catch (err) {
    console.log("Table comparison FAILED, element not present!");
    return console.log(err);
  }
};
0
Alan Díaz 25 अप्रैल 2020, 01:59

1 उत्तर

सबसे बढ़िया उत्तर

जैसा कि अन्य लोगों के पास पॉइंटर है, आपका ब्रेक आपके लूप में नहीं है बल्कि आपके .then में एक अनाम फ़ंक्शन में है। इसके अलावा मुख्य मुद्दा यह है कि आप अपने वादों को ठीक से नहीं निभा रहे हैं। Async/await को आपको .then कथनों का उपयोग करने की आवश्यकता नहीं होने के कारण प्रबंधन वादों को आसान बनाने के लिए पेश किया गया था, इसलिए आपको निश्चित रूप से उन्हें इस तरह से एक साथ उपयोग नहीं करना चाहिए।

साथ ही expect कथन समकालिक होते हैं इसलिए प्रतीक्षा की आवश्यकता नहीं होती है, लेकिन प्रोटैक्टर का उपयोग करते समय अपेक्षा के भीतर की क्रियाएं (लगभग हमेशा) async होंगी ताकि कथन expect(await element(By.cssContainingText(byElement.value, param)).isPresent()).toBe(true); पढ़ा जाए

आप इस तरह कोड को फिर से लिख सकते हैं:

async function CompareTableData(byElement, param) {
    try {
        await this.WaitToBeClickable(element(By.cssContainingText(byElement.value, param)));
        const item = await element.all(byElement)

        for (var i = 0; i < item.length; i++) {
            const text = await item[i].getText();
            var trimTxt = text.trim();
            if (trimTxt == param && byElement.using == "css selector") {
                console.log(`Param FOUND! ${param}\n`);
                expect(await element(By.cssContainingText(byElement.value, param)).isPresent()).toBe(true);
                break;
            } else {
                return;
            }
        }
    } catch (err) {
        console.log("Table comparison FAILED, element not present!");
        return console.log(err);
    }
};
0
DublinDev 25 अप्रैल 2020, 08:09