我正在尝试使用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的新手!