it-swarm.com.de

Puppenspieler kann keine Wahl finden

Ich versuche, mit Puppeteer ein wenig Web-Scraping durchzuführen, aber das Skript scheint den von mir gesuchten Selector nicht zu finden. Grundsätzlich dieser Code:

const puppeteer = require('puppeteer');

let scrape = async () => {
const year = 18;

const browser = await puppeteer.launch({headless: false});
const page = await browser.newPage();
await page.goto('https://cobbcounty.org/index.php?option=com_wrapper&view=wrapper&Itemid=2008');
await page.waitFor(5000);
var id = '';
for(i=0;i<10000;i++){
    id = i;
    await page.click('#txtCase');
    await page.keyboard.type(year + '-P-' + id);
    await page.select('#lstDoc','Estate');
}
}

scrape().then((value) => {
console.log('script ended');
});

Gib mir diesen Fehler:

(node:31125) UnhandledPromiseRejectionWarning: AssertionError 
[ERR_ASSERTION]: No node found for selector: #txtCase

Soweit ich das beurteilen kann, ist #txtCase eine echte Auswahl auf der Seite. Ich weiß nicht, warum der Puppenspieler es nicht finden kann. Wenn mir jemand erklären kann, was ich falsch mache, wäre das wirklich hilfreich.

3

Soweit ich das beurteilen kann, ist #txtCase eine echte Auswahl auf der Seite. Ich weiß nicht, warum der Puppenspieler es nicht finden kann.

Laden Sie die Seite und verwenden Sie die Konsole, um das Element zu finden.

document.querySelector('#txtCase')
null

Es ist nicht da. Ich weiß, dass Sie es sehen können, wenn Sie mit der rechten Maustaste auf das Textfeld klicken, aber es ist in einem Iframe verschachtelt. Sie müssen auf diesen Rahmen zugreifen, dann die Schaltfläche finden und dann darauf klicken.

const frame = await page.frames().find(f => f.name() === 'iframe');
const button = await frame.$('#txtCase');
button.click();
4
posit labs

Diese Schaltfläche ist in einem iframe verschachtelt (auf den die Seite selbst nicht zugreifen kann oder Funktionen wie click ausführen kann). Sie müssten die URL dieses iFrames in Ihrem goto Ihrer Seite angeben, wie hier .

0
griffith_joel