gpt4 book ai didi

javascript - Nightmarejs-如何读取表行内容?

转载 作者:行者123 更新时间:2023-12-03 13:24:09 25 4
gpt4 key购买 nike

我正在编写一个小 Nightmare 脚本,该脚本在Web表单中键入名称并读取打印在表中的结果。我已经输入了输入内容,并得到如下表结果:

{ jQuery110205953448106032428: 124 }

所以我不知道如何从该元素读取行。

我当前的脚本是:
const Nightmare = require('nightmare')
const nightmare = Nightmare({ show: true })

nightmare
.goto('https://rnped.segob.gob.mx/')
.click('small#leyendacomun')
.wait(2000)
.type('input#comun_c_nombre', 'María')
.type('input#comun_c_apaterno', 'Hernández')
.click('button#busca_comun')
.wait(2000)
.evaluate(function () {
return document.querySelector('table#t_comun')
// Here I select and return the <table>
})
.end()
.then(function (result) {
console.log(result)
// Here I get { jQuery110205953448106032428: 124 }
})
.catch(function (error) {
console.error('Error:', error);
});

如何从该查询选择器中获取表行?

最佳答案

评估的结果不能像您的代码中那样引用DOM元素。在evaluate()函数内部进行所有数据提取,例如:

  // ...
.wait(2000)
.evaluate(function () {
// get table and prepare result
const table = document.querySelector('table#t_comun'),
result = [];

// get rows
const rows = table.querySelectorAll( 'tr' );
for( let i=0; i<rows.length; i++ ) {

// get cells
let cells = rows[i].querySelectorAll( 'td' );

// get contents
let row = [];
for( j=0; j<cells.length; j++ ) {
row.push( cells[i].innerHTML );
}

// add to result
result.push( row );
}

// done, return result
return result;
})
.end()
// ...

关于javascript - Nightmarejs-如何读取表行内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43209268/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com