You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Selenium编写if-else定时打开网页代码运行报错求助

问题修复方案

错误点梳理

  • 核心语法错误:if ct == 8:55 行中8:55没有用引号包裹,属于非法Python表达式,直接触发Pylance语法校验报错
  • 逻辑缺陷:Chrome驱动初始化放在while循环内部,每轮循环都会启动新的Chrome进程,无意义占用系统资源
  • 适配问题:strftime("%H:%M")返回的时间格式带前导零,早上8:55返回值为"08:55",直接和"8:55"匹配会失败
  • 版本兼容问题:Selenium 4.0+版本已废弃直接给webdriver.Chrome()传驱动路径的写法,需要通过Service类指定路径

修正后代码

如果需要提前启动浏览器,可以使用如下版本:

import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from datetime import datetime

# 驱动初始化放在循环外部,只启动一次浏览器
PATH = "chromedriver.exe"
driver = webdriver.Chrome(service=Service(PATH))
target_time = "08:55"

while True:
    ct = datetime.now().strftime("%H:%M")
    if ct == target_time:
        driver.get("https://webpage.com/")
        # 打开网页后跳出循环,避免重复执行
        break
    else:
        print("Waiting for time to be 8:55...")
        # 每分钟检查一次足够,不需要休眠100秒
        time.sleep(60)

如果希望到点再启动浏览器,可以使用如下版本:

import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from datetime import datetime

PATH = "chromedriver.exe"
target_time = "08:55"

while True:
    ct = datetime.now().strftime("%H:%M")
    if ct == target_time:
        driver = webdriver.Chrome(service=Service(PATH))
        driver.get("https://webpage.com/")
        break
    else:
        print("Waiting for time to be 8:55...")
        time.sleep(60)

内容的提问来源于stack exchange,提问作者Swanith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 18:36:03