|
|
|
|
@ -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);
|
|
|
|
|
|