This commit is contained in:
Matthias Hochmeister
2026-03-13 19:29:56 +01:00
parent bc6d09200a
commit e1aa8fa59b

View File

@@ -144,27 +144,37 @@ async function scrapeMembers(frame: Frame): Promise<FdiskMember[]> {
// We clear it before submitting so all members of the fire station are returned.
const hasForm = await frame.$('form[name="frmsearch"]') !== null;
if (hasForm) {
const cleared = await frame.evaluate(() => {
const fieldDump = await frame.evaluate(() => {
const form = (document as any).forms['frmsearch'];
if (!form) return [];
const clearedFields: string[] = [];
if (!form) return { cleared: [], allFields: [] };
const cleared: string[] = [];
const allFields: string[] = [];
for (const el of Array.from(form.elements) as HTMLInputElement[]) {
if (el.type === 'hidden') continue;
const name = (el.name ?? '').toLowerCase();
const id = (el.id ?? '').toLowerCase();
if (el.value) allFields.push(`${el.name || el.id}=${el.value}`);
if (name.includes('standesbuch') || id.includes('standesbuch')) {
el.value = '';
clearedFields.push(el.name || el.id);
cleared.push(el.name || el.id);
}
}
return clearedFields;
return { cleared, allFields };
});
if (cleared.length > 0) {
log(`Cleared Standesbuchnummer filter fields: ${cleared.join(', ')}`);
if (fieldDump.allFields.length > 0) {
log(`Search form active filters before clear: ${fieldDump.allFields.join(', ')}`);
}
if (fieldDump.cleared.length > 0) {
log(`Cleared Standesbuchnummer filter fields: ${fieldDump.cleared.join(', ')}`);
} else {
log('Search form found — no Standesbuchnummer field detected, submitting as-is');
}
await frame.evaluate(() => { (document as any).forms['frmsearch'].submit(); });
await frame.waitForLoadState('networkidle');
// Use Promise.all to start waiting for navigation BEFORE triggering the submit,
// otherwise waitForLoadState resolves against the already-idle current page.
await Promise.all([
frame.waitForNavigation({ waitUntil: 'networkidle', timeout: 30000 }),
frame.evaluate(() => { (document as any).forms['frmsearch'].submit(); }),
]);
log(`After form submit: ${frame.url()}`);
}