Files
zentao-flow/tmp/pw_cs_sniff.py
T

34 lines
1.6 KiB
Python

# -*- 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'
def on_resp(resp):
if 'myWorkScore' in resp.url:
try:
print('RESP status=', resp.status, 'body head=', resp.text()[:300])
except Exception as e:
print('RESP read err', e)
def on_req(req):
if 'myWorkScore' in req.url:
print('REQ post=', req.post_data)
with sync_playwright() as p:
b = p.chromium.launch(channel='chrome', headless=True)
page = b.new_page(viewport={'width': 1600, 'height': 1000})
page.on('request', on_req)
page.on('response', on_resp)
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)
page.locator('button:has-text("上月"):visible').first.click(); page.wait_for_timeout(1000)
page.locator('button:has-text("查询"):visible').first.click()
page.wait_for_selector('tr:has-text("孙庆方")', timeout=25000)
page.wait_for_timeout(2000)
row = page.locator('tr:has-text("孙庆方")').first
row.locator('button:has-text("绩效")').first.click(); page.wait_for_timeout(15000)
b.close()
print('done')