无法在PhantomJS上使用getElementsByClassName()获取类

时间:2019-07-09 11:27:41

标签: javascript phantomjs

我尝试找到与按钮关联的类元素,以验证按钮的存在。但似乎我无法使其正常工作。我正在使用正确的方法吗?

我想使用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”代码)。

0 个答案:

没有答案