You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Python自动化中if-else语句返回错误结果的问题求助

搞定你的周五倒计时验证问题

嘿,我瞅了下你的代码和输出,问题其实挺明显的,咱们来一步步修复:

第一个坑:没拿到倒计时数字的文本内容

你现在写的countdown_number = driver.find_element_by_class_name("count")只是拿到了Selenium的WebElement对象,不是元素显示的数字文本!所以你拿这个对象和数字3比,肯定永远不相等。得加上.text来提取实际显示的内容:

countdown_number = driver.find_element_by_class_name("count").text

而且注意,.text返回的是字符串,所以比较的时候要用"3"而不是数字3哦。

第二个坑:文本内容完全不匹配

从你的输出能看到,countdown_text实际是3 DAYS UNTIL #FIREBALLFRIDAY,但你代码里判断的是"DAYS UNTIL #FRIDAY"——不仅少了前面的数字,还漏了FIREBALL这个词,大小写也得对应上才行。

另外还有个小细节:你打印的countdown_text已经包含了数字3,会不会页面上的数字和文本其实是在同一个元素里?如果是这样的话,直接从完整文本里拆分验证会更靠谱,不用单独定位两个元素。

修正后的周二验证代码

elif dt.datetime.today().weekday() == 1:
    # 获取完整的倒计时文本
    full_countdown = driver.find_element_by_class_name("friday-text").text
    print(full_countdown)
    
    # 拆分数字和剩余文本(按第一个空格拆分)
    try:
        countdown_num_str, countdown_text_part = full_countdown.split(maxsplit=1)
        countdown_num = int(countdown_num_str)
        
        # 验证数字和文本内容
        if countdown_num == 3 and countdown_text_part == "DAYS UNTIL #FIREBALLFRIDAY":
            print("Friday Counter is correct. It's Tuesday.")
        else:
            print("Friday Counter is incorrect for Tuesday.")
    except (ValueError, IndexError):
        print("Countdown format doesn't match expected pattern.")

额外小贴士

  • 别硬死磕完整文本,万一页面文本改了(比如把FIREBALL去掉),你的测试就挂了。可以用部分匹配,比如检查文本是否包含"DAYS UNTIL #FRIDAY"
    if countdown_num == 3 and "DAYS UNTIL #FRIDAY" in countdown_text_part.upper():
    
  • 把字符串转成整数来比较数字,就算前面有空格或者其他小格式问题,也能正常验证。

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

火山引擎 最新活动