0

Ich versuche, über die Links zu iterieren und bei jedem Klick bestätigen Sie die Seite existiert und zurückgeben. Bis jetzt habe ich diese Funktion im Testfall. Das Problem ist, dass nach dem Klicken auf den ersten Link und Navigieren zurück Browser noch einmal zurück navigiert und dann die Iteration auf der leeren Seite erfolgt. Wenn ich mit init() zurück() wechsle, schlägt der Test immer noch fehl. Dies ist der Testfall, kein Seitenobjektbefehl. Bitte helfenNightwatchJS iterierende Links mit browser.back()

ChromeDriver v.2.28.455517 Selen v2.53.0

browser.elements('css selector', 'specific element', function(allLinks) { 
     allLinks.value.forEach(function(index) { 
      console.log('Element value is ' + index.ELEMENT) 
      browser.elementIdClick(index.ELEMENT, function(res) { 
       this.waitForElementVisible('body', 2000); 
       this.back(); 
       this.pause(1000); 
      }); 
     }) 
    }); 

Antwort

0

ich gemacht habe arbeiten sie mit folgendem (Code-Schnipsel unten Fall wird man mit diesem Kampf). Obwohl ich diese Lösung nicht wirklich mag, weil sie sehr instabil ist. Wenn jemand eine bessere arbeitet Beispiel, bitte teilen Sie es und ein großes Lob an Sie wird garantiert sein!

'links': function(browser) { 
     browser.elements('css selector', '#footer .footerlist .links li a', function(res) { 
      for (let i = 1; i < res.value.length; i++) { 
       browser.click('#footer .footerlist .links li:nth-child(' + i + ') a'); 
       browser.pause(2000); 
       browser.waitForElementVisible('body', 1000); 
       browser.url(''); 
      } 
     }) 
    }