使用node.js和Selenium

时间:2016-07-02 13:09:23

标签: javascript node.js selenium selenium-webdriver

我正在尝试使用node.js和Selenium解析HTML表中的数据。根据我正在查看的表格的哪一列,有一个条件,我似乎无法让我的代码工作。目前我有

var webdriver          = require('selenium-webdriver');
var By                 = webdriver.By;
var driver             = *webdriver instance*;
var table_row_xpath    = *xpath of all table rows*
var table_header_xpath = *xpath table header elements*

driver.findElements(By.xpath(table_row_xpath)).then(function(rows) {
    for (var i = 0; i < rows.length; i++) {
        rows[i].findElements(By.xpath('td')).then(function(cells) {
            for (var j = 0; j < rows.length; j++) {
                headers[j].getText().then(function(header_text) {
                    if (header_text != '') {
                        cells[j].getText().then(function(cell_text) {
                            console.log(header_text, cell_text);
                        });
                    } else {
                        console.log('No header');
                    }
                });
            }
        });
    }
});

然而,cells[j].getText().then中的headers[j].getText().then似乎导致脚本失败。如果我把它改为

******** Inner Loop *********
headers[j].getText().then(function(header_text) {
    console.log(header_text);
})

cells[j].getText().then(function(cell_text) {
    console.log(cell_text);
});

然后以正确的顺序打印出值,但显然在这种情况下,我无法检查标题是否为空字符串。

我该如何纠正?如果您可以告诉我如何使代码更具可读性,那么也是奖励积分,我是node.js的新手!

0 个答案:

没有答案