Der Code unten funktioniert, außer dass ich nicht nur die Ergebnisse ausdrucken möchten, wenn gelöst, möchte ich in der Lage sein, sie im JSON-Format zu strukturieren. Ich denke, dafür muss ich warten, bis alle Versprechen gelöst sind, aber ich weiß nicht wie!Selenium webdriver - lösen mehrere Versprechen
var webdriver = require('selenium-webdriver'),
By = webdriver.By,
until = webdriver.until;
var driver = new webdriver.Builder()
.forBrowser('chrome')
.build();
driver.get('www.example.com');
driver.sleep(2000);
driver.findElements(By.css('.listing')).then(function(resWraps){
for (var i=0; i<resWraps.length; i++) {
resWraps[i].findElement(By.css('.title a')).getAttribute("innerHTML").then(function(title){
console.log(title);
});
resWraps[i].findElement(By.css('.price')).getAttribute("innerHTML").then(function(price){
console.log(price);
});
}
});
Also, ich bekomme eine Liste. Dann würde ich gerne mehrere Elemente in jedem Element der Liste finden. Aber ich kann nicht warten, bis alle Versprechen gelöst sind, um mein endgültiges JSON-Array zu erstellen.
für alle Versprechen zu warten .... verwenden ... 'Promise.all' –
@JaromandaX, danke, aber es immer noch nicht dem Zufall .. Ich bin nicht sicher, wie zu handhaben' Promise.all' in einer Schleife –
oder vielleicht wegen der dynamischen Umordnung der Elemente: 'UnhandledPromiseRejectionWarning: Unbehandelte Versprechensverweigerung (Ablehnungs-ID: 1): StaleElementReferenceError: Veraltete Elementverweis: Element ist nicht an das Seitendokument angehängt' –