← back to Nationalrealestate

cap_search.cjs

25 lines

const { chromium } = require('playwright');
(async () => {
  const url = process.argv[2] || 'https://corkwallcovering.com/';
  const q = process.argv[3] || 'blue';
  const out = process.argv[4] || '/tmp/search-proof.png';
  const b = await chromium.launch();
  const page = await b.newPage({ viewport: { width: 1200, height: 900 } });
  await page.goto(url, { waitUntil: 'domcontentloaded', timeout: 30000 });
  await page.waitForTimeout(1200); // let corner-nav.js inject
  // open the search panel
  await page.click('#cnav-search', { timeout: 8000 });
  await page.waitForTimeout(400);
  await page.click('#cnav-search-input');
  await page.type('#cnav-search-input', q, { delay: 90 }); // simulate typing
  // wait for live preview rows to render
  await page.waitForSelector('a.cnav-res', { timeout: 8000 });
  await page.waitForTimeout(600);
  const n = await page.$$eval('a.cnav-res', els => els.length);
  const firstTitle = await page.$eval('a.cnav-res .cnav-res-t', el => el.textContent).catch(()=> '');
  console.log('site:', url, '| query:', q, '| preview rows:', n, '| first:', firstTitle);
  await page.screenshot({ path: out });
  console.log('screenshot:', out);
  await b.close();
})().catch(e => { console.error('ERR', e.message); process.exit(1); });