import argparse import sys from pathlib import Path from selenium import webdriver from selenium.webdriver.chrome.service import Service def parse_args(): parser = argparse.ArgumentParser( prog="test_driver", description="测试指定 ChromeDriver 是否可用,并检查页面访问是否正常。", ) parser.add_argument( "--driver", type=str, required=True, help="ChromeDriver 可执行文件路径。", ) parser.add_argument( "--url", type=str, default="https://www.baidu.com", help="用于测试的目标 URL,默认 https://www.baidu.com。", ) return parser.parse_args() def main(): args = parse_args() driver_path = Path(args.driver) if not driver_path.exists(): print(f"不通过:ChromeDriver 路径不存在:{driver_path}") sys.exit(1) chrome_options = webdriver.ChromeOptions() chrome_options.add_argument("--headless") chrome_options.add_argument("--disable-gpu") chrome_options.add_argument("--no-sandbox") try: client = webdriver.Chrome( options=chrome_options, service=Service(str(driver_path)) ) except Exception as e: print(f"不通过:初始化 WebDriver 失败:{e}") sys.exit(1) try: client.get(args.url) print("通过:成功访问页面,视为返回 200。") sys.exit(0) except Exception as e: print(f"不通过:页面请求失败:{e}") sys.exit(1) finally: try: client.quit() except Exception: pass if __name__ == "__main__": main()