From 4d0db5b86fcac9a0aa7de527f32694a217456a6b Mon Sep 17 00:00:00 2001 From: saif Date: Tue, 4 Mar 2025 12:09:04 +0500 Subject: [PATCH] minor changes DOM chnages --- sync-shipping-rates.js | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/sync-shipping-rates.js b/sync-shipping-rates.js index a743f92..15d577f 100644 --- a/sync-shipping-rates.js +++ b/sync-shipping-rates.js @@ -10,7 +10,11 @@ const utils = require("./utils"); const emailUtils = require("./email-utils"); (async function () { - console.log(`===========< STARTED ${utils.getPakistanStandardTime(luxon.DateTime.now())} >=========`); + console.log( + `===========< STARTED ${utils.getPakistanStandardTime( + luxon.DateTime.now() + )} >=========` + ); const syncDate = luxon.DateTime.now().toFormat("yyyy-MM-dd"); /** @@ -221,7 +225,7 @@ const emailUtils = require("./email-utils"); await new Promise((r) => setTimeout(r, 5000)); } catch (e) { console.log(e); - break + break; } } } catch (e) { @@ -229,10 +233,33 @@ const emailUtils = require("./email-utils"); } } + /* + * Select shipping date + */ + const selectShippingDate = async (page) => { + // wait for 5 seconds + await new Promise((resolve) => setTimeout(resolve, 5 * 1000)); + // select shipping date + const shippingDateSelector = + 'div[id="packageList[0].trackingInfoList[0].shipDate"] input:first-of-type'; + await page.waitForSelector(shippingDateSelector); + await page.click(shippingDateSelector); + + // wait for 5 seconds + await new Promise((resolve) => setTimeout(resolve, 5 * 1000)); + + // select shipping date + const shippingDateOptionSelector = + "body > div.PT_outerWrapper_123.PP_outerWrapper_123.ST_dropdown_123.ST_largeDropdown_123.PT_dropdown_123.PT_portalBottomLeft_123.PT_inCustom_123.PP_dropdown_123 > div > div > div > div > div > div:nth-child(1) > ul > li.cIL_item_123.cIL_large_123.cIL_highlight_123.ST_itemRendererLabel_123"; + await page.waitForSelector(shippingDateOptionSelector); + await page.click(shippingDateOptionSelector); + }; + /** * Capture response */ const checkShippingRates = async (page, timer) => { + await selectShippingDate(page); return new Promise((resolve, reject) => { // Timeout mechanism to resolve with an empty list after 5 seconds const timeout = setTimeout(() => { @@ -601,7 +628,7 @@ const emailUtils = require("./email-utils"); rates = []; } } catch (e) { - emailUtils.notify( `Sync Temu Orders Shipping Rates`, e.message ); + emailUtils.notify(`Sync Temu Orders Shipping Rates`, e.message); } }