diff --git a/login.py b/login.py deleted file mode 100644 index aba8933..0000000 --- a/login.py +++ /dev/null @@ -1,65 +0,0 @@ -""" -登录模块 - 负责用友BIP系统的登录操作 -""" -from playwright.sync_api import Playwright, Browser, BrowserContext, Page, Frame - - -def login( - playwright: Playwright, - username: str, - password: str, - url: str = "https://68.11.34.30:8082/yonbip/resources/uap/rbac/login/main/index.html", - headless: bool = False, - ignore_https_errors: bool = True -) -> tuple[Browser, BrowserContext, Page, Frame]: - """ - 登录用友BIP系统 - - 参数: - playwright: Playwright实例 - username: 用户名 - password: 密码 - url: 登录页面URL - headless: 是否使用无头模式 - ignore_https_errors: 是否忽略HTTPS错误 - - 返回: - tuple: (browser, context, page, main_frame) - - browser: 浏览器实例 - - context: 浏览器上下文 - - page: 页面对象 - - main_frame: 登录后的主iframe (forwardFrame) - """ - # 启动浏览器 - browser = playwright.chromium.launch(headless=headless) - - # 创建上下文 - context = browser.new_context(ignore_https_errors=ignore_https_errors) - - # 创建页面 - page = context.new_page() - - # 导航到登录页面 - page.goto(url) - - # 提取主 iframe (forwardFrame) - main_frame = page.locator("#forwardFrame").content_frame - - # 填写用户名 - main_frame.get_by_role("textbox", name="用户名").fill(username) - - # 填写密码 - main_frame.get_by_role("textbox", name="密码").fill(password) - - # 点击登录按钮 - main_frame.get_by_role("button", name="登录").click() - - # 处理强制登录弹窗(判断是否存在) - confirm_btn = main_frame.get_by_role("button", name="确定") - if confirm_btn.count() > 0: - confirm_btn.click() - print("强制登录") - else: - print("正常登录") - - return browser, context, page, main_frame