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

Python Selenium校验倒计时时try except无输出也不报错怎么办

问题原因分析
  • try块覆盖逻辑错误
    你将if条件判断放在try块内,但if条件不成立时只会跳过内部的打印逻辑,不会抛出任何异常,因此既不会触发正确提示的打印,也不会进入except分支打印错误提示,这是无任何输出的核心原因。try-except只能捕获代码运行时抛出的异常,无法处理「条件判断不成立」的逻辑错误。

  • 周一校验逻辑存在属性获取错误
    你通过driver.find_element_by_class_name("count")拿到的是Selenium的WebElement对象,没有提取其文本内容也没有转为整数,直接和数字4做相等判断,条件永远为假,永远不会触发正确提示的打印。正确写法应该是获取元素的text属性后转整数:int(countdown_number.text) == 4。

  • 空except存在异常吞吃问题
    你使用了无明确异常类型的except,如果代码执行过程中出现元素找不到、属性调用错误等问题,会被直接吞掉不会抛出报错,进一步掩盖了代码本身的逻辑问题。

修复建议

把判断逻辑移到try块外,只把可能抛出异常的元素获取操作放入try块,同时修正数字比对逻辑:

import datetime
# 周一校验修复后示例
if datetime.datetime.today().weekday() == 0:
    try:
        # 可能抛出异常的元素获取操作放在try内
        countdown_text = driver.find_element_by_class_name("friday-text").text
        countdown_number = int(driver.find_element_by_class_name("count").text)
    except Exception as e:
        # 捕获元素不存在、类型转换失败等异常
        print("Friday Counter is incorrect: 元素获取或数据转换失败")
    else:
        # 无异常时再做逻辑判断
        if countdown_text == "DAYS UNTIL #FRIDAY" and countdown_number == 4:
            print("Friday Counter is correct. It's Monday - unfortunately.")
        else:
            print(f"Friday Counter is incorrect: 文本为{countdown_text}, 倒计时数字为{countdown_number}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 21:36:05