update
This commit is contained in:
@@ -241,9 +241,9 @@ export async function scrapeAll(username: string, password: string, knownStNrs:
|
||||
const idPersonen = urlObj.searchParams.get('id_personen');
|
||||
const idInstanzen = urlObj.searchParams.get('id_instanzen') ?? ID_INSTANZEN;
|
||||
|
||||
// Ausbildungen
|
||||
const quals = await scrapeAusbildungenFromDetailPage(mainFrame, member, idMitgliedschaft, idPersonen);
|
||||
ausbildungen.push(...quals);
|
||||
// Ausbildungen — disabled: requires different page/approach (TODO)
|
||||
// const quals = await scrapeAusbildungenFromDetailPage(mainFrame, member, idMitgliedschaft, idPersonen);
|
||||
// ausbildungen.push(...quals);
|
||||
|
||||
// Beförderungen
|
||||
const befos = (idMitgliedschaft && idPersonen)
|
||||
@@ -281,6 +281,20 @@ async function frame_goto(frame: Frame, url: string): Promise<void> {
|
||||
await frame.goto(url, { waitUntil: 'networkidle' });
|
||||
}
|
||||
|
||||
/** Select "Alle" in the anzeige_count dropdown to show all rows, then wait for reload. */
|
||||
async function selectAlleAnzeige(frame: Frame): Promise<void> {
|
||||
try {
|
||||
const sel = frame.locator('select[name="anzeige_count"], select#anzeige_count');
|
||||
if (await sel.count() === 0) return;
|
||||
const current = await sel.inputValue().catch(() => '');
|
||||
if (current === 'ALLE') return; // already showing all
|
||||
await sel.selectOption('ALLE');
|
||||
await frame.waitForLoadState('networkidle').catch(() => {});
|
||||
} catch {
|
||||
// Dropdown may not exist on all pages — that's OK
|
||||
}
|
||||
}
|
||||
|
||||
async function login(page: Page, username: string, password: string): Promise<void> {
|
||||
log(`Navigating to ${LOGIN_URL}`);
|
||||
await page.goto(LOGIN_URL, { waitUntil: 'domcontentloaded' });
|
||||
@@ -890,6 +904,10 @@ async function navigateAndGetTableRows(
|
||||
return null;
|
||||
}
|
||||
|
||||
// Show all rows (default is 10)
|
||||
await selectAlleAnzeige(frame);
|
||||
}
|
||||
|
||||
// Log all table classes on the page for diagnostics (first time only)
|
||||
const tableInfo = await frame.evaluate(() => {
|
||||
return Array.from(document.querySelectorAll('table')).map((t, i) => {
|
||||
@@ -1078,6 +1096,9 @@ async function scrapeMemberFahrgenehmigungen(
|
||||
return [];
|
||||
}
|
||||
|
||||
// Show all rows (default is 10)
|
||||
await selectAlleAnzeige(frame);
|
||||
|
||||
// Dump HTML for diagnostics
|
||||
await dumpHtml(frame, `fahrgenehmigungen_StNr${standesbuchNr}`);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user