page.evaluate返回null文档

时间:2017-04-25 12:38:11

标签: node.js phantomjs

以下是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);
}

当上述代码安静运行时,记录的html值显示为null

它与macosx中的phantomjs完美配合,但是当我将它部署到ubuntu服务器时,它无法正常工作。我确定我使用支持linux的phantomjs

第一页。评价工作得很好,作为下一页。评估3秒后超时不起作用,我浪费了足够的时间进行调试,最后在这里询问,如果有人有同样的问题,或者有些信息是我想要问我。

文档为空的原因可能是什么,这意味着在评估html页面时存在一些问题

1 个答案:

答案 0 :(得分:1)

根据docs

,您无法从document返回page.evaluate
  

闭包,函数,DOM节点等不起作用!

如果您想获得该网页的整个HTML,请尝试a built-in page.content变量:

console.log(page.content);