77 lines
2.3 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# main.py
import argparse
from browser_manager import get_chrome_driver
from modules.or_address_handler import process_addresses
from modules.or_publickey_handler import generate_or_address
# 模块映射
MODULES = {
"or-address": process_addresses,
"or-publickey": generate_or_address,
# 在这里可以添加更多的模块
# "another-module": another_handler_function,
}
def main():
"""
主函数,用于解析参数并执行相应的自动化任务。
"""
# 1. 设置命令行参数解析
parser = argparse.ArgumentParser(description="Selenium 自动化脚本启动器")
parser.add_argument(
"--module",
type=str,
required=True,
choices=MODULES.keys(),
help="要执行的业务模块名称。"
)
parser.add_argument(
"--debug",
action="store_true",
help="使用此参数连接到已存在的 Chrome 调试实例。"
)
parser.add_argument(
"--cnt",
type=int,
default=1,
help="生成地址的数量。"
)
args = parser.parse_args()
# 2. 根据参数选择浏览器启动方式
use_debugger = args.debug
driver = get_chrome_driver(use_debugger=use_debugger)
if not driver:
print("无法获取 WebDriver程序退出。")
return
try:
# 3. 根据参数调用相应的业务模块
module_name = args.module
handler_function = MODULES.get(module_name)
if handler_function:
print(f"--- 开始执行模块: {module_name} ---")
handler_function(driver, args)
print(f"--- 模块: {module_name} 执行完毕 ---")
else:
# 这段代码理论上不会执行,因为 argparse 的 choices 已经做了限制
print(f"错误: 未知的模块 '{module_name}'")
except Exception as e:
print(f"执行自动化任务时发生严重错误: {e}")
finally:
# 4. 任务结束后的清理工作
print("所有任务执行完毕。")
# 如果不是连接的调试模式,则关闭浏览器
if not use_debugger:
print("关闭浏览器...")
driver.quit()
else:
print("任务完成,保持调试浏览器开启。")
if __name__ == "__main__":
main()