'commit'
|
Before Width: | Height: | Size: 125 KiB |
|
Before Width: | Height: | Size: 247 KiB |
|
Before Width: | Height: | Size: 121 KiB |
|
Before Width: | Height: | Size: 236 KiB |
|
Before Width: | Height: | Size: 130 KiB |
|
Before Width: | Height: | Size: 253 KiB |
|
Before Width: | Height: | Size: 116 KiB |
|
Before Width: | Height: | Size: 232 KiB |
|
Before Width: | Height: | Size: 119 KiB |
|
Before Width: | Height: | Size: 227 KiB |
|
Before Width: | Height: | Size: 124 KiB |
|
Before Width: | Height: | Size: 243 KiB |
|
Before Width: | Height: | Size: 129 KiB |
|
Before Width: | Height: | Size: 249 KiB |
|
Before Width: | Height: | Size: 131 KiB |
|
Before Width: | Height: | Size: 251 KiB |
|
Before Width: | Height: | Size: 118 KiB |
|
Before Width: | Height: | Size: 230 KiB |
|
Before Width: | Height: | Size: 124 KiB |
|
Before Width: | Height: | Size: 240 KiB |
|
Before Width: | Height: | Size: 138 KiB |
|
Before Width: | Height: | Size: 259 KiB |
BIN
Test/TestFirstPage/Output/xdt_firstpage_1_1768700540.jpg
Normal file
|
After Width: | Height: | Size: 138 KiB |
|
After Width: | Height: | Size: 260 KiB |
|
Before Width: | Height: | Size: 125 KiB |
|
Before Width: | Height: | Size: 244 KiB |
|
Before Width: | Height: | Size: 118 KiB |
|
Before Width: | Height: | Size: 238 KiB |
|
Before Width: | Height: | Size: 121 KiB |
|
Before Width: | Height: | Size: 245 KiB |
|
Before Width: | Height: | Size: 123 KiB |
|
Before Width: | Height: | Size: 243 KiB |
|
Before Width: | Height: | Size: 125 KiB |
|
Before Width: | Height: | Size: 242 KiB |
|
Before Width: | Height: | Size: 126 KiB |
|
Before Width: | Height: | Size: 244 KiB |
|
Before Width: | Height: | Size: 132 KiB |
|
Before Width: | Height: | Size: 257 KiB |
|
Before Width: | Height: | Size: 130 KiB |
|
Before Width: | Height: | Size: 249 KiB |
|
Before Width: | Height: | Size: 128 KiB |
|
Before Width: | Height: | Size: 250 KiB |
|
Before Width: | Height: | Size: 127 KiB |
|
Before Width: | Height: | Size: 252 KiB |
|
Before Width: | Height: | Size: 123 KiB |
|
Before Width: | Height: | Size: 242 KiB |
BIN
Test/TestFirstPage/Output/xdt_firstpage_2_1768700553.jpg
Normal file
|
After Width: | Height: | Size: 125 KiB |
|
After Width: | Height: | Size: 242 KiB |
|
Before Width: | Height: | Size: 123 KiB |
|
Before Width: | Height: | Size: 242 KiB |
|
Before Width: | Height: | Size: 125 KiB |
|
Before Width: | Height: | Size: 244 KiB |
BIN
Test/TestFirstPage/Output/xdt_firstpage_3_1768700564.jpg
Normal file
|
After Width: | Height: | Size: 124 KiB |
|
After Width: | Height: | Size: 242 KiB |
|
Before Width: | Height: | Size: 120 KiB |
|
Before Width: | Height: | Size: 236 KiB |
BIN
Test/TestFirstPage/Output/xdt_firstpage_4_1768700577.jpg
Normal file
|
After Width: | Height: | Size: 121 KiB |
|
After Width: | Height: | Size: 246 KiB |
|
Before Width: | Height: | Size: 121 KiB |
|
Before Width: | Height: | Size: 242 KiB |
BIN
Test/TestFirstPage/Output/xdt_firstpage_5_1768700588.jpg
Normal file
|
After Width: | Height: | Size: 126 KiB |
|
After Width: | Height: | Size: 254 KiB |
|
Before Width: | Height: | Size: 123 KiB |
|
Before Width: | Height: | Size: 237 KiB |
|
Before Width: | Height: | Size: 121 KiB |
|
Before Width: | Height: | Size: 240 KiB |
|
Before Width: | Height: | Size: 120 KiB |
|
Before Width: | Height: | Size: 232 KiB |
|
Before Width: | Height: | Size: 124 KiB |
|
Before Width: | Height: | Size: 242 KiB |
@@ -14,7 +14,7 @@ if project_root not in sys.path:
|
||||
|
||||
from Apps.XinDianTu.Kit import setup_logger, take_screenshot
|
||||
from Apps.XinDianTu.Config.Setting import SCROLL_DISTANCE_RATIO, WAIT_AFTER_SCROLL
|
||||
from Apps.XinDianTu.FirstPageKit import run_ocr_rect
|
||||
from Apps.XinDianTu.FirstPageKit import run_ocr_rect, run_batch_in_dir
|
||||
|
||||
|
||||
LOGS_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), "Logs")
|
||||
@@ -39,7 +39,7 @@ async def capture_list_page(d, base_dir: str, index: int):
|
||||
logger.exception(f"[{index}] 运行 OCR 绿框测试失败: {e}")
|
||||
|
||||
|
||||
async def run():
|
||||
async def run_scroll_capture():
|
||||
logger.info("请先手动打开微信并进入新电途小程序的场站列表第一页。")
|
||||
|
||||
d = u2.connect()
|
||||
@@ -60,17 +60,56 @@ async def run():
|
||||
shutil.rmtree(path)
|
||||
os.makedirs(base_dir, exist_ok=True)
|
||||
|
||||
for i in range(1, 11):
|
||||
for i in range(1, 6):
|
||||
await capture_list_page(d, base_dir, i)
|
||||
if i < 10:
|
||||
if i < 5:
|
||||
logger.info(f"[{i}] 向上滑动,scale={SCROLL_DISTANCE_RATIO},等待 {WAIT_AFTER_SCROLL} 秒后继续截图。")
|
||||
d.swipe_ext("up", scale=SCROLL_DISTANCE_RATIO)
|
||||
await asyncio.sleep(WAIT_AFTER_SCROLL)
|
||||
|
||||
|
||||
async def run_batch_local():
|
||||
base_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
logger.info(f"批量处理目录中的 JPG 文件: {base_dir}")
|
||||
await run_batch_in_dir(base_dir, log_path=LOG_FILE_PATH)
|
||||
|
||||
|
||||
async def run_single_image(image_path: str):
|
||||
if not image_path:
|
||||
logger.error("单图模式下需要提供图片路径。")
|
||||
return
|
||||
if not os.path.isabs(image_path):
|
||||
image_path = os.path.abspath(image_path)
|
||||
if not os.path.exists(image_path):
|
||||
logger.error(f"指定的图片不存在: {image_path}")
|
||||
return
|
||||
logger.info(f"单图 OCR 测试,图片路径: {image_path}")
|
||||
await run_ocr_rect(image_path, log_path=LOG_FILE_PATH)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
mode = "scroll"
|
||||
image_path = None
|
||||
if len(sys.argv) >= 2:
|
||||
arg1 = sys.argv[1]
|
||||
lower = arg1.lower()
|
||||
if lower == "batch":
|
||||
mode = "batch"
|
||||
elif lower == "image":
|
||||
mode = "image"
|
||||
if len(sys.argv) >= 3:
|
||||
image_path = sys.argv[2]
|
||||
else:
|
||||
if any(lower.endswith(ext) for ext in [".jpg", ".jpeg", ".png"]):
|
||||
mode = "image"
|
||||
image_path = arg1
|
||||
try:
|
||||
asyncio.run(run())
|
||||
if mode == "batch":
|
||||
asyncio.run(run_batch_local())
|
||||
elif mode == "image":
|
||||
asyncio.run(run_single_image(image_path))
|
||||
else:
|
||||
asyncio.run(run_scroll_capture())
|
||||
except KeyboardInterrupt:
|
||||
logger.info("用户手动中断测试脚本。")
|
||||
except Exception as e:
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
import asyncio
|
||||
import os
|
||||
import sys
|
||||
|
||||
project_root = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
||||
if project_root not in sys.path:
|
||||
sys.path.append(project_root)
|
||||
|
||||
from Apps.XinDianTu.FirstPageKit import run_ocr_rect
|
||||
|
||||
|
||||
async def run_test(image_path, log_path=None):
|
||||
await run_ocr_rect(image_path, log_path=log_path)
|
||||
|
||||
|
||||
async def run_batch():
|
||||
base_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
files = sorted(os.listdir(base_dir))
|
||||
|
||||
jpg_files = []
|
||||
for name in files:
|
||||
lower = name.lower()
|
||||
if not lower.endswith(".jpg"):
|
||||
continue
|
||||
if lower.endswith("_ocr_rect.jpg"):
|
||||
continue
|
||||
jpg_files.append(os.path.join(base_dir, name))
|
||||
|
||||
if not jpg_files:
|
||||
print(f"目录中未找到待处理的 JPG 文件: {base_dir}")
|
||||
return
|
||||
|
||||
print(f"即将批量处理 {len(jpg_files)} 张图片:")
|
||||
for p in jpg_files:
|
||||
print(f" - {p}")
|
||||
|
||||
for p in jpg_files:
|
||||
await run_test(p)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
asyncio.run(run_batch())
|
||||