| 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
cookies=[]
for line in open('cj.txt'):
if line.startswith('#') or not line.strip(): continue
p=line.rstrip('\n').split('\t')
if len(p)>=7: cookies.append((p[5],p[6]))
with sync_playwright() as pw:
b=pw.chromium.launch(args=['--ignore-certificate-errors'])
ctx=b.new_context(viewport={'width':1400,'height':950},ignore_https_errors=True)
ctx.add_cookies([{'name':n,'value':v,'domain':'seaside.pacim.de','path':'/'} for n,v in cookies])
pg=ctx.new_page()
errs=[]; pg.on('console', lambda m: errs.append(m.text) if m.type=='error' else None)
pg.goto('https://seaside.pacim.de/index.php?getTemplate=worktime/dashboard',wait_until='networkidle')
pg.wait_for_timeout(1800)
cells=pg.query_selector_all('.fc-daygrid-day[data-date]'); dt=cells[12].get_attribute('data-date')
pg.click('.fc-daygrid-day[data-date="'+dt+'"] .fc-daygrid-day-number', force=True); pg.wait_for_timeout(800)
pg.click('#dayAddBtn'); pg.wait_for_timeout(700)
# pick first employee in capture picker
cap = pg.query_selector('#captureModal')
inp = cap.query_selector('.wt-search'); inp.click(); pg.wait_for_timeout(500)
first = cap.query_selector('.wt-results .wt-result'); empname=first.get_attribute('data-name'); first.dispatch_event('mousedown'); pg.wait_for_timeout(300)
pg.fill('#capStart','03:03'); pg.fill('#capEnd','03:33'); pg.fill('#capBreak','0')
pg.click('#capSave'); pg.wait_for_timeout(1500)
modalOpen=pg.eval_on_selector('#captureModal','e=>e.classList.contains("show")')
panelOpen=pg.eval_on_selector('#dayPanel','e=>e.classList.contains("show")')
bodyText=pg.eval_on_selector('#dayPanelBody','e=>e.textContent')
print('date:',dt,'emp:',empname)
print('after save -> modal open:',modalOpen,'| panel open:',panelOpen,'| panel shows entry:', ('03:03' in bodyText or 'Erfassung' in pg.eval_on_selector('#dayPanelSummary','e=>e.textContent')))
print('summary:', pg.eval_on_selector('#dayPanelSummary','e=>e.textContent'))
print('errors:',errs[:5])
print('CLEANUP_DATE='+dt)
b.close()