Я написал скрипт на node
в сочетании с puppeteer
, чтобы очистить названия различных учреждений, пересекающих несколько страниц на веб-сайте .
Мой следующий скрипт может анализировать названия учреждений с целевой страницы, а затем инициировать несколько щелчков мышью при анализе имени с других страниц и, наконец, в какой-то момент выполнения обнаруживает ошибку.
the error: TypeError: Cannot read property 'click' of undefined
at main (c:\Users\WCS\Desktop\Node vault\comments.js:18:25)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:118:7)
Я использовал Harcoded for loop
, так как на самом деле у меня нет никакой идеи позволить скрипту нажимать кнопку следующей страницы, пока не останется ничего. Я хочу соблюдать любую логику, чтобы мой скрипт сначала искал кнопку следующей страницы. Если он найдет его, он нажмет на эту кнопку и повторите процесс.
Я пробовал с:
const puppeteer = require('puppeteer');
const link = "https://www.incometaxindia.gov.in/Pages/utilities/exempted-institutions.aspx";
(async function main() {
try {
const browser = await puppeteer.launch({headless:false});
const [page] = await browser.pages();
await page.goto(link);
await page.waitForSelector("h1.faqsno-heading");
for(let i = 1; i < 20; i++){
const sections = await page.$$("h1.faqsno-heading");
for (const section of sections) {
const itemName = await section.$eval("div[id^='arrowex']", el => el.innerText);
console.log(itemName);
}
const nextPage = await page.$$(".ms-paging > a");
await nextPage[i].click();
await page.waitForNavigation({waituntil:'networkidle0'});
}
await browser.close();
} catch (e) {
console.log('the error: ', e);
}
})();
Кстати, чтобы спасти этот пост от двуличия, я должен признать, что натолкнулся на этот пост , но я не думаю, что сам смогу реализовать логику в своем сценарии.