Javascript Selenium webdriver-解决多个承诺
下面的代码可以工作,除了我不想在解析结果时打印出来之外,我希望能够以JSON格式对它们进行结构化。 我想,我需要等待所有的承诺得到解决,但我不知道如何解决Javascript Selenium webdriver-解决多个承诺,javascript,node.js,selenium,selenium-webdriver,promise,Javascript,Node.js,Selenium,Selenium Webdriver,Promise,下面的代码可以工作,除了我不想在解析结果时打印出来之外,我希望能够以JSON格式对它们进行结构化。 我想,我需要等待所有的承诺得到解决,但我不知道如何解决 var webdriver = require('selenium-webdriver'), By = webdriver.By, until = webdriver.until; var driver = new webdriver.Builder() .forBrowser('chrome')
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);
});
}
});
var webdriver=require('selenium-webdriver'),
By=webdriver.By,
until=webdriver.until;
var driver=new webdriver.Builder()
.forBrowser('chrome')
.build();
get('www.example.com');
《驾驶员睡眠》(2000年);
driver.findElements(By.css('.listing')).then(function(resWraps){
for(var i=0;iPromise.all解析数组,因此需要将元素推送到数组,然后将其传递给Promise.all函数。类似于:
const promiseArray = []
for (var i=0; i<resWraps.length; i++) {
promiseArray.push(resWraps[i].findElement(By.css('.title a')).getAttribute("innerHTML"));
}
return Promise.all(promiseArray)
.then(resolvedList){
// do something with resolvedList
}
const promiseArray=[]
对于(var i=0;it等待所有承诺….使用…Promise.all
@JaromandaX,谢谢,但它仍然随机失败..我不确定如何处理Promise.all
在循环中,或者可能是因为项目的动态重新排序:未处理Promisejection警告:未处理的承诺拒绝(拒绝id:1):staleElement引用错误:stale元素引用:元素未附加到页面文档