Не удается получить класс с помощью getElementsByClassName () на PhantomJS - PullRequest
1 голос
/ 09 июля 2019

Я пытаюсь найти элемент класса, связанный с кнопкой, чтобы проверить его наличие. Но, похоже, я не могу заставить его работать. Я использую правильный метод для этого?

Я хочу использовать 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") не отображается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...