Python 中没有错误的中断循环 - Selenium

Break loop without error in Python - Selenium

当我尝试解析循环的最后一页并在下一个 (») 按钮不再存在时退出循环时出现以下错误:selenium.common.exceptions.NoSuchElementException:消息:无法定位元素:»

代码:

while True:
    prices = driver.find_element_by_id('showAllGraphsButton')
    prices.click()
    time.sleep(6)
    s_container = driver.find_element_by_id('stockContainer')
    stocks = WebDriverWait(s_container, 10).until(EC.visibility_of_all_elements_located((By.CLASS_NAME, "imageRow")))
    for stock in stocks:
        name = WebDriverWait(stock, 10).until(EC.visibility_of_element_located((By.CLASS_NAME, "auto-ellipsis"))).text
        stock_name.append(name)
        percentage = WebDriverWait(stock, 10).until(EC.visibility_of_element_located((By.CLASS_NAME, "return-value"))).text
        stock_percentage.append(percentage)
        price = WebDriverWait(stock, 10).until(EC.visibility_of_element_located((By.CLASS_NAME, "last-price"))).text
        stock_price.append(price)

        if len(driver.find_element_by_link_text('»').text) > 0:
            driver.find_element_by_link_text('»').click()
            time.sleep(6)
        else:
            break

driver.quit()

请教我如何在元素不再存在时成功退出循环。 谢谢。

试试这个:在您的代码中加入“try”和“except”函数。有了它们,代码不会 return 错误,但它只是停止了。如果你愿意,你可以在出错的情况下重复循环,你只能在 try 结束时放置 break。 而真实的: 尝试: #一些代码 休息 除了: #一些代码