gpt4 book ai didi

javascript - node-phantom 没有在网页上启用 javascript

转载 作者:搜寻专家 更新时间:2023-10-31 22:52:47 27 4
gpt4 key购买 nike

我正在使用 node-phantom 将项目发布到网站上的购物车。问题是,当我使用 page.open 导航到购物车页面时(在已经将商品添加到购物车之后),我收到一个 html 响应,说我需要在浏览器中启用 javascript 才能查看购物购物车页面。我检查了 settings.javascriptEnabled 设置,发现它被设置为“true”。到这里我就纳闷了,为什么页面会认为phantomjs没有启用javascript呢?

这是我的代码:

var phantom = require('node-phantom');

phantom.create(function (err, ph) {
ph.createPage(function (err, page) {

page.get('settings', function(err, oldSettings) {
console.log('\r\n oldSettings: ' + JSON.stringify(oldSettings));

page.open('http://www.somesite.com/shoppingcart/default.cfm', function (err, status) {
page.injectJs(jqueryPath, function (err) {
setTimeout(function() {
page.evaluate(function (injectedSku) {
var localErr;
var skuInCart;
var checkoutLnkMsg;
var pageHTML;

try {
pageHTML = $("html").html();

// Get 'SKUs' input element.
skuInCart = $('input[name="SKUs"]').val();

if (injectedSku === skuInCart) {
var checkoutLnk = $('#cartAction_bottom a[alt="Checkout"');

checkoutLnk.on("click", function() {
checkoutLnkMsg = '"' + checkoutLnk.href + '" link has been clicked';
});

checkoutLnk.click();
} else {
throw new Error('Product not in cart');
}
} catch (e) {
localErr = e;
}

return {
pageHTML: pageHTML,
err: localErr,
skuInCart: skuInCart,
checkoutLnkMsg: checkoutLnkMsg,
injectedSku: injectedSku
};

}, function (err, result) {
if (result.err) {
callback(err);
//return ph.exit();
}

fs.writeFileSync("./html_log.txt", result.pageHTML);
console.log('\r\n checkout - page.evaluate - injectedSku: ' + result.injectedSku);
console.log('\r\n checkout - page.evaluate - result.skuInCart: ' + JSON.stringify(result.skuInCart));
console.log('\r\n checkout - page.evaluate - result.checkoutLnkMsg: ' + result.checkoutLnkMsg);

callback(null);
//return ph.exit();
}, sku);
}, 1250);
});
});
});
});
});

最佳答案

替换

page.injectJs()

page.includeJs()

更新

var phantom = require('node-phantom');

phantom.create(function (err, ph) {
ph.createPage(function (err, page) {

page.get('settings', function(err, oldSettings) {
//console.log('\r\n oldSettings: ' + JSON.stringify(oldSettings));

page.open('http://www.footlocker.com/shoppingcart/default.cfm?', function (err, status) {
console.log(status);
var sku = 234; // assign sku id here
page.includeJs('http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js', function (err) {
setTimeout(function() {
page.evaluate(function (injectedSku) {
var localErr;
var skuInCart;
var checkoutLnkMsg;
var pageHTML;

try {
pageHTML = $("html").html();

// Get 'SKUs' input element.
skuInCart = $('input[name="SKUs"]').val();

if (injectedSku === skuInCart) {
var checkoutLnk = $('#cartAction_bottom a[alt="Checkout"');

checkoutLnk.on("click", function() {
checkoutLnkMsg = '"' + checkoutLnk.href + '" link has been clicked';
});

checkoutLnk.click();
} else {
throw new Error('Product not in cart');
}
} catch (e) {
localErr = e;
}

return {
pageHTML: pageHTML,
err: localErr,
skuInCart: skuInCart,
checkoutLnkMsg: checkoutLnkMsg,
injectedSku: injectedSku
};

}, function (err, result) {
if (result.err) {
// callback(err);
//return ph.exit();
}

// fs.writeFileSync("./html_log.txt", result.pageHTML);
console.log('\r\n checkout - page.evaluate - injectedSku: ' + result.injectedSku);
console.log('\r\n checkout - page.evaluate - result.skuInCart: ' + JSON.stringify(result.skuInCart));
console.log('\r\n checkout - page.evaluate - result.checkoutLnkMsg: ' + result.checkoutLnkMsg);

// callback(null);
ph.exit();
}, sku);
}, 1250);
});

});
});
})
});

关于javascript - node-phantom 没有在网页上启用 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20662418/

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