如何让基于Selenium的Python脚本持续运行以定时点击按钮?
解决方案
要让脚本保持运行并自动点击每隔10分钟弹出的按钮,你需要给代码加入循环检测逻辑和异常处理,避免按钮未出现时脚本直接崩溃。下面是调整后的可运行代码:
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.common.exceptions import NoSuchElementException import time # 初始化浏览器并打开目标页面 driver = webdriver.Firefox() driver.get("webpage") # 替换为你的实际网页URL try: # 持续运行循环,直到手动停止 while True: try: # 查找按钮并点击 button = driver.find_element(By.CSS_SELECTOR, "div.ml12:nth-child(1) > a:nth-child(1)") button.click() print("成功点击按钮") # 点击后等待10分钟,避免重复检测同一弹窗 time.sleep(600) except NoSuchElementException: # 按钮未出现,等待30秒后再次检测 time.sleep(30) except KeyboardInterrupt: # 手动按下Ctrl+C时,关闭浏览器并停止脚本 print("脚本已手动停止") driver.quit() except Exception as e: # 处理其他意外错误 print(f"运行出错: {str(e)}") driver.quit()
关键说明:
- 异常捕获:用
NoSuchElementException处理按钮未加载的情况,确保脚本不会因为找不到元素而终止。 - 间隔设置:按钮未出现时每30秒检查一次,既不会过度占用资源,也不会错过弹窗;点击后等待10分钟,匹配按钮弹出的周期。
- 手动停止机制:捕获
KeyboardInterrupt信号,允许你通过Ctrl+C安全停止脚本并关闭浏览器,避免残留浏览器进程。 - 错误兜底:外层异常处理捕获其他意外问题(比如浏览器被手动关闭),保证浏览器能正常退出。
内容的提问来源于stack exchange,提问作者NICKR
相关产品推荐
相关产品推荐

