CasperJS提取表格每行首列链接时仅成功获取首行且报错的问题求助
CasperJS仅能提取表格首行链接href,后续行触发TypeError错误
我正在尝试用CasperJS抓取一个HTML表格中每行<tr>的第一个<td>内链接的href属性,但遇到了问题:代码能正确识别表格有54行(和实际行数一致),但只有首行的链接能成功提取,后续所有行都会触发TypeError: null is not an object (evaluating 'rows[i].children')错误。
目标HTML表格结构:
<table id="securedTable" border="1" cellspacing="0" cellpadding="1" class="secured"> <thead> <tr> <th>Name</th> <th>Address</th> <th>Lien Number</th> <th>Lien Type</th> <th>Filed</th> <th>Terminate Date</th> <th>Lapse Date</th> </tr> </thead> <tbody> <tr class="oddRow"> <td class="borderedTd"><a href="javascript:generateFileNumberSearchResult(92919403)">XXXXXXXX</a></td> <td class="borderedTd">PO BOX 2576</td> </tr> <tr class="evenRow"> <td class="borderedTd"><a href="javascript:generateFileNumberSearchResult(92919732)">YYYYYYYYYY</a></td> <td class="borderedTd">PO BOX 2576</td> </tr> .... </tbody> </table>
我的CasperJS代码:
casper.waitForSelector('input[id="nonStandardSearchFormID_0"], input[value="Search"]', function () { this.click('input[id="nonStandardSearchFormID_0"], input[value="Search"]'); logMsg('Form submitted.'); }); casper.waitForSelector('form[name="resultsDisplayFormID"]', function () { if (this.exists('form[name="resultsDisplayFormID"]')) { logMsg("Data loaded."); } else { logMsg('No data loaded.'); } }); casper.then(function () { var rows = this.evaluate(function () { return document.querySelectorAll('#securedTable tbody tr td:first-child'); }); var length = rows.length; logMsg("table length: " + length); for (var i = 0; i < length; i++) { logMsg(JSON.stringify(rows[i].children[0].href)); } }); casper.run();
错误输出:
table length: 54 "javascript:generateFileNumberSearchResult(92919403)" TypeError: null is not an object (evaluating 'rows[i].children')
我已经确认表格确实有54行,且每行的第一个<td>理论上都包含链接,但后续行的rows[i].children却是null。有没有人能帮我找出问题所在?
内容的提问来源于stack exchange,提问作者Dev Dev
相关产品推荐
相关产品推荐

