A continuación se muestra el código phantomjs
page.open('https://onli**************uickpay.html', function (status) { if (status !== 'success') { console.log('Unable to access network') } else { console.log('internet is working'); var ua = page.evaluate(function (loanID) { var loanIDSplit = loanID.split('/'); document.getElementById("txtBranchCode").value = loanIDSplit[0]; document.getElementById("txtType").value = loanIDSplit[1]; document.getElementById("txtLoanNumber").value = loanIDSplit[2]; document.getElementById("btnLoanNoSearch").click(); }, loanID); console.log(util.inspect(document, false, null)); setTimeout(function () { var html = page.evaluate(function () { var table = document.getElementById('tblQpLoanNo'); table.getElementsByClassName('odd')[0].click(); document.getElementById("LoNoPayButton").click(); return document; }); page.render('/home/ubuntu/github.png'); console.log('is the value of document'+html); }, 3000); setTimeout( function (){ var release_amount = page.evaluate(function () { var table = document.getElementById('tblQpPayment'); var row = table.getElementsByClassName('odd')[0]; var payableAmount = row.getElementsByTagName('td')[3].textContent; return payableAmount; }); console.log("release amount value is "+release_amount); // system.stdout.write("$" + releaseAmount); // system.stdout.write("$" + loanID); phantom.exit(); }, 10000); }cuando se ejecuta la paz de código anterior, el valor html que se registra se muestra nulo
Funciona perfectamente con phantomjs en macosx pero cuando lo he implementado en el servidor ubuntu no funciona. Me aseguré de estar usando phantomjs compatible con Linux
La primera página.evaluar funciona bien, mientras que la siguiente página.evaluar después de 3 segundos de tiempo de espera no funciona, he perdido suficiente tiempo depurando y finalmente preguntando aquí, si alguien tuvo el mismo problema o si falta alguna información, por favor siéntase para preguntarme
¿Cuáles pueden ser las razones por las que el documento es nulo, eso significa que hay algún problema al evaluar la página html?
No puede devolver el document de page.evaluate porque, según los documentos
¡Los cierres, funciones, nodos DOM, etc. no funcionarán!
Si desea obtener el html completo de la página, intente con una variable page.content :
console.log(page.content);