# -*- coding: utf-8 -*- import io, sys from playwright.sync_api import sync_playwright sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') BASE = 'http://localhost:8088' with sync_playwright() as p: b = p.chromium.launch(channel='chrome', headless=True) page = b.new_page(viewport={'width': 1600, 'height': 1000}) page.goto(BASE, wait_until='domcontentloaded'); page.wait_for_timeout(2500) page.locator('input[placeholder="用户名"]').fill('admin') page.locator('input[placeholder="密码"]').fill('123456') page.locator('text="登录"').first.click(); page.wait_for_timeout(8000) page.goto(f'{BASE}/#/worktime/count', wait_until='domcontentloaded'); page.wait_for_timeout(8000) page.locator('.el-tabs__item:has-text("月报"):visible').first.click(); page.wait_for_timeout(5000) # 产品集切 139,本月(7 月) page.locator('.el-select:visible').nth(1).click(); page.wait_for_timeout(1500) page.locator('.el-select-dropdown:visible li:has-text("139")').first.click(); page.wait_for_timeout(1000) page.locator('button:has-text("查询"):visible').first.click(); page.wait_for_timeout(8000) row = page.locator('tr:has-text("岑海峰")').first if not row.count(): page.screenshot(path='tmp/pw_yw_entry_list.png', full_page=True) print('岑海峰未出行,截图 tmp/pw_yw_entry_list.png') b.close(); raise SystemExit(0) print('岑海峰已出行') row.locator('button:has-text("绩效")').first.click(); page.wait_for_timeout(15000) body = page.locator('body').inner_text() keys = ['运维大项任务', '系统运维监控', '职场巡检', '数据库备份', '其他运维工作的完成情况', '系统运行稳定性'] miss = [k for k in keys if k not in body] page.screenshot(path='tmp/pw_yw_cenhaifeng.png', full_page=True) print('[YW岑海峰]', 'PASS' if not miss else f'MISS:{miss}') b.close() print('done')