feat: 添加无头模式并且优化配置项
This commit is contained in:
@@ -1,11 +1,5 @@
|
||||
LOGIN_URL=https://sia.sinopec.com/mobile/#/login
|
||||
TARGET_URL=https://sia.sinopec.com/mobile/#/app/autonomous/test/index?fromName=index
|
||||
HEADLESS=false
|
||||
TIMEOUT_MS=30000
|
||||
BROWSER_CHANNEL=msedge
|
||||
USER_DATA_DIR=.auth/edge
|
||||
STORAGE_STATE_PATH=.auth/storage_state.json
|
||||
SESSION_STATE_PATH=.auth/session_storage.json
|
||||
LOGIN_USERNAME=
|
||||
LOGIN_PASSWORD=
|
||||
QUESTION_BANK=测录融合
|
||||
|
||||
@@ -35,7 +35,7 @@ uv sync
|
||||
uv run playwright install chromium
|
||||
```
|
||||
|
||||
本项目默认使用系统里的 Microsoft Edge:
|
||||
本项目默认使用系统里的 Microsoft Edge,固定配置在代码中:
|
||||
|
||||
```text
|
||||
BROWSER_CHANNEL=msedge
|
||||
@@ -56,15 +56,13 @@ RESULT_DELAY_S=2
|
||||
|
||||
常用配置说明:
|
||||
|
||||
- `LOGIN_URL`:登录页地址。
|
||||
- `TARGET_URL`:自主练测入口地址。
|
||||
- `LOGIN_USERNAME` / `LOGIN_PASSWORD`:登录账号密码。
|
||||
- `QUESTION_BANK`:题库关键词,程序会从页面 tab 中自动匹配最接近的题库。
|
||||
- `ANSWER_COUNT`:自动答题数量,`0` 表示只进入练习不答题,`-1` 表示一直答到结束。
|
||||
- `ANSWER_WAIT_S`:每题答题前的随机等待时间,格式是 `最小秒数-最大秒数`。
|
||||
- `RESULT_DELAY_S`:点击答案后到点击下一题前的基准等待秒数,实际随机范围是 `50%-150%`。
|
||||
- `STORAGE_STATE_PATH`:保存 cookie/localStorage 的文件。
|
||||
- `SESSION_STATE_PATH`:保存 sessionStorage 的文件。
|
||||
|
||||
固定默认值在 `src/auto_answer/config.py` 中维护,包括登录页、自主练测入口、Edge channel、cookie/localStorage/sessionStorage 保存路径。
|
||||
|
||||
`.env`、`.auth/` 已加入 `.gitignore`,不会提交到 Git。
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@ def open_login_page(settings: Settings) -> Iterator[tuple[BrowserContext, Page]]
|
||||
with sync_playwright() as playwright:
|
||||
browser: Browser = playwright.chromium.launch(
|
||||
channel=settings.browser_channel,
|
||||
headless=False,
|
||||
headless=settings.headless,
|
||||
)
|
||||
context_options = {}
|
||||
storage_state_path = Path(settings.storage_state_path)
|
||||
|
||||
@@ -7,7 +7,9 @@ from auto_answer.runner import AnswerRunner
|
||||
|
||||
|
||||
def build_settings(args: argparse.Namespace) -> Settings:
|
||||
values: dict[str, object] = {"headless": args.headless}
|
||||
values: dict[str, object] = {}
|
||||
if args.headless:
|
||||
values["headless"] = True
|
||||
if args.url and args.command == "login":
|
||||
values["login_url"] = args.url
|
||||
elif args.url:
|
||||
|
||||
Reference in New Issue
Block a user