使用selenium运行js代码,如何获取到这段js代码的返回值啊,

function yunfeng(address,callback) {
    var yun = '';
    var url = "https://etherscan.io/tokenholdingsnew.aspx/GetAssetDetails";
    var params = { "dataTableModel": { "draw": 2, "columns": [{ "data": "TokenName", "name": "", "searchable": true, "orderable": true, "search": { "value": "", "regex": false } }, { "data": "Symbol", "name": "", "searchable": true, "orderable": false, "search": { "value": "", "regex": false } }, { "data": "ContractAddress", "name": "", "searchable": true, "orderable": false, "search": { "value": "", "regex": false } }, { "data": "Balance", "name": "", "searchable": true, "orderable": true, "search": { "value": "", "regex": false } }, { "data": "Price", "name": "", "searchable": true, "orderable": true, "search": { "value": "", "regex": false } }, { "data": "Change24H", "name": "", "searchable": true, "orderable": false, "search": { "value": "", "regex": false } }, { "data": "Value", "name": "", "searchable": true, "orderable": true, "search": { "value": "", "regex": false } }, { "data": "More", "name": "", "searchable": true, "orderable": false, "search": { "value": "", "regex": false } }], "order": [{ "column": 6, "dir": "desc" }], "start": 0, "length": 10000, "search": { "value": "", "regex": false } }, "model": { "address": address, "hideZeroAssets": false, "filteredContract": "", "showEthPrice": false } };
    var xhr = new XMLHttpRequest();
    xhr.open("POST", url, true);
    xhr.setRequestHeader("Content-Type", "application/json");
    xhr.onload = function (e) {
        if (xhr.readyState === 4) {
            if (xhr.status === 200) {
                yun = xhr.responseText;
                callback(yun)
            } else {
                console.error(xhr.statusText);
            }
        }
    };
    xhr.onerror = function (e) {
        console.error(xhr.statusText);
    };
    xhr.send(JSON.stringify(params));
    //return xhr.responseText//不能return,ajax未返回
}

var add = '0x05e793ce0c6027323ac150f6d45c2344d28b6019'
yunfeng(add, function (yun) {
    console.log(yun)
})

这段js代码,我在浏览器的控制台是可以获取到的值,但是selenium得到的就是NOne

这个试过吗?直接用代码获取ajax的数据


Browsermob-Proxy是一个开源的Java编写的基于LittleProxy的代理服务。Browsermob-Proxy的具体流程有点类似与Flidder或Charles。即开启一个端口并作为一个标准代理存在,当HTTP客户端(浏览器等)设置了这个代理,则可以抓取所有的请求细节并获取返回内容。

安装

直接到项目的github上下载打好的压缩包即可:https://github.com/lightbody/browsermob-proxy/releases ,支持Linux和Windows。

安装对应的python包:

pip install browsermob-proxy

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632