【问题标题】:How to combine execute_scipt and WebdriverWait如何结合execute_scipt和WebdriverWait
【发布时间】:2025-11-22 13:55:01
【问题描述】:

我想知道是否有办法将execute_script()WebdriverWait 结合起来。目前我有以下代码:

network_list = driver.find_element_by_xpath('//*[@id="folder_box"]/div[1]/div/div[2]/div[1]')
wait = WebDriverWait(driver, 4)
try:
    wait_network_list = wait.until(EC.element_to_be_clickable((By.XPATH, 'network_list')))
except:
    driver.execute_script("arguments[0].click();", network_list)

代码做了它应该做的事情,但我想这是一种丑陋的方式。有没有办法将我的 try 和 except 语句组合到一行代码中?

【问题讨论】:

    标签: javascript python selenium selenium-webdriver webdriverwait


    【解决方案1】:

    您可以在execute_script() 方法中调用WebdriverWait,如下所示:

    try:
        driver.execute_script("arguments[0].click();", WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//*[@id='folder_box']/div[1]/div/div[2]/div[1]"))))
        print("Element was clicked")
    except TimeoutException:
        print("Element wasn't clicked")
        break
    

    【讨论】: