首页 > 解决方案 > 如何使此代码正确执行 if 语句

问题描述

下面的代码应该在 2 秒后等待单击按钮。单击两次后,它应该等待 15 秒,然后再继续单击。然而,15 秒的等待并没有发生。我究竟做错了什么?

#click follow
    clicked=0
    try:
        Fclick=driver.find_element_by_xpath('//button[text()="Follow"]')
        driver.execute_script("arguments[0].click();", Fclick)
        time.sleep(1)
        inputElement.send_keys(e)
    except Exception:
        driver.back()
        time.sleep(2)
        driver.get("https://www.instagram.com/am_batman33/?hl=en")
        clicked +=1
        if clicked == 2:
            clicked = 0
            time.sleep(15)
        else:
            time.sleep(2)

标签: pythonselenium

解决方案


似乎有indentation问题。if else 条件属于except块,所以直到和除非try块中没有异常,代码将不会执行。

简单的解决方案是让您的代码保持与 try 除了块相同的意图。

clicked=0
try:
    Fclick=driver.find_element_by_xpath('//button[text()="Follow"]')
    driver.execute_script("arguments[0].click();", Fclick)
    time.sleep(1)
    inputElement.send_keys(e)
except Exception:
    driver.back()
    time.sleep(2)
    driver.get("https://www.instagram.com/am_batman33/?hl=en")
    clicked +=1

if clicked == 2:
    clicked = 0
    time.sleep(15)
else:
    time.sleep(2)

推荐阅读