我尝试找到与按钮关联的类元素,以验证按钮的存在。但似乎我无法使其正常工作。我正在使用正确的方法吗?
我想使用PhantomJS来查看“添加到购物车”按钮是否在那里,以便可以指示库存情况。 为此,我编写了以下代码:
var page = require('webpage').create();
page.settings.userAgent = 'Mozilla';
page.open('https://www.gearbest.com/3d-printers-3d-printer-kits/pp_009187500972.html', function (status) {
if (status !== 'success') {
console.log('Unable to access network');
} else {
var add = page.evaluate(function () {
return document.getElementsByClassName("js-btnGoodsAddCart")[0];
});
if (add.outerHTML.length > 0) {
console.log(page.title + " AVAILABLE");
} else {
console.log(page.title + " UNAVAILABLE");
}
}
phantom.exit();
});
上面还有我正在处理的地址。当我运行脚本时,它只是停止响应。 我要搜索的HTML代码是:
<div class="goodsIntro_btnWrap js-buyBtnWrap">
<a href="javascript:;" class="btn big line2 uibtn-cart js-btnGoodsAddCart js-trackBtnAddCart ">Add to Cart</a>
<a href="javascript:;" class="btn big uibtn-buynow js-btnGoodsBuyNow js-trackBtnBuyNow ">Buy Now</a>
<a href="javascript:;" class="btn big btnPaypal js-btnGoodsBuyWithPaypal js-trackBtnPaypal" data-disable="false">
<span class="lightningPayPalImg"></span></a>
</div>
P.S。我可以使用它,但是可以使用document.getElementsByClassName(“ goodsIntro_btnWrap js-buyBtnWrap”)。不显示innerHTML(其中显示“ js-btnGoodsAddCart”代码)。