Я пытаюсь найти элемент класса, связанный с кнопкой, чтобы проверить его наличие. Но, похоже, я не могу заставить его работать. Я использую правильный метод для этого?
Я хочу использовать 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") не отображается.