| Server IP : 202.61.199.114 / Your IP : 216.73.217.139 Web Server : nginx/1.22.1 System : Linux de.arni-solutions.de 6.1.0-49-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64 User : web20 ( 1018) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /tmp/ |
Upload File : |
from playwright.sync_api import sync_playwright
URL='https://seaside.pacim.de/checkin.php?b=115156&h=fcfd0fc0663af8e93edbbeeea0b80abd'
def geo(pg):
return pg.evaluate('''()=>{
const vh=innerHeight;
const hd=document.querySelector('.hd').getBoundingClientRect();
const tb=document.querySelector('.tabbar').getBoundingClientRect();
const ap=document.querySelector('.pane.active');
return {vh, hdTop:Math.round(hd.top), tbBottom:Math.round(tb.bottom), tbTop:Math.round(tb.top),
paneScrollable: ap? (ap.scrollHeight>ap.clientHeight):null,
footHint: !!document.body.innerText.match(/Parken am Schiff/)};
}''')
with sync_playwright() as pw:
b=pw.chromium.launch()
pg=b.new_page(viewport={'width':390,'height':844}, device_scale_factor=2)
cdp=pg.context.new_cdp_session(pg)
cdp.send('Emulation.setSafeAreaInsetsOverride', {'insets':{'top':59,'left':0,'right':0,'bottom':34}})
pg.goto(URL, wait_until='networkidle'); pg.wait_for_timeout(700)
print('Buchung:', geo(pg))
# to Notizen (long content)
pg.click('.tab[data-tab="notizen"]'); pg.wait_for_timeout(800)
g=geo(pg); print('Notizen:', g)
# scroll the active pane down, header & tabbar must stay
pg.eval_on_selector('.pane.active','e=>e.scrollTop=600'); pg.wait_for_timeout(200)
print('after scroll:', geo(pg))
pg.screenshot(path='/tmp/shell_notizen.png')
b.close()