Javascript Selenium Webdriver循环,文件保存和承诺

时间:2018-08-01 14:22:02

标签: javascript node.js loops selenium-webdriver promise

好,所以我一直把头撞在墙上,试图解决这个问题。

我正在使用node.js,Selenium Webdriver和firefox。

我想遍历URL列表并将结果HTML保存到我的文件系统中。

我现在设置的方式将循环遍历所有列表,但是直到整个例程完成并且我仅从数组中的最后一个元素获取数据之前,我不会提供任何输出。适当数量的文件。

我正在使用的代码逻辑示例是:

var urlList = [link1,link2,link3];
var driver = new Builder().forBrowser('firefox').build();

function loopURL(){
    var loopPromises = [];
    urlList.forEach(url=>{
        loopPromises.push(new Promise((resolve,reject)=>{
        resolve(loadAndSaveResults(url))
    })
    return Promise.all(loopPromises);       
}

function loadAndSaveResults(url){
    return driver.wait(until.elementLocated(By.linkText(url)))
    .then(_=> driver.get(url))
    .then(_=> driver.getPageSource())
    .then(pageString => driver.wait(writeToFile(pageString))
}

async function writeToFile(pageString){
    await fs.writeFileSync(filepath,pageString);
{ 

driver.get('http://homepage/index.html')
.then(_=> loopURL())
.then(_=> driver.quit());

我想念什么?

0 个答案:

没有答案