diff --git a/server/processors/ebay.processor.js b/server/processors/ebay.processor.js index a126f14..0ba423d 100644 --- a/server/processors/ebay.processor.js +++ b/server/processors/ebay.processor.js @@ -7,13 +7,24 @@ module.exports = { execute: async function (page) { const thumbnailGallerySelector = '.ux-thumb-image-carousel'; const thumbnailGalleryItemSelector = '.ux-image-filmstrip-carousel-item > img:nth-child(1)'; - const sellerSelector = '.ux-seller-section__item--seller > a:nth-child(1) > span:nth-child(1)' + const sellerSelector = '.ux-seller-section__item--seller > a:nth-child(1) > span:nth-child(1)'; + const alternateSellerSelector = 'html.font-marketsans body.vi-body.en-US.gh-flex div.vi-evo div.main-container div.vim.x-vi-evo-main-container.template-evo-avip div#CenterPanel.center-panel-container.vi-mast div.vi-grid div.vi-mast__grid div#RightSummaryPanel.right-summary-panel-container.vi-mast__col-right div#mainContent.vim.x-evo-atf-right-river div.vim.d-vi-evo-region div.vim.x-sellercard-atf_main.mar-t-12 div.vim.x-sellercard-atf div.x-sellercard-atf__info div.x-sellercard-atf__info__about-seller a.ux-action span.ux-textspans.ux-textspans--BOLD'; const descriptionSelectr = '#desc_ifr'; //page is considered loaded //get the seller to see if we can tell what layout its using const sellerElement = await page.$(sellerSelector); - const seller = await page.evaluate(el => el.textContent, sellerElement); + let seller = null; + try { + seller = await page.evaluate(el => el.textContent, sellerElement); + } catch(error) { + log.info('Failed default seller selector, trying alternative...'); + try { + seller = await page.evaluate(el => el.textContent, await page.$(alternateSellerSelector)); + } catch(error){ + log.info('Failed alternative seller selector, defaulting to default strategy...'); + } + } log.info(`User is '${seller}'`); if (seller === 'classicautomall') { await page.waitForSelector(descriptionSelectr);