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
相关产品推荐
相关产品推荐

