Break loop without error in Python – Selenium

  element, exception, loops, python, selenium

I am getting the following error when trying to parse the last page of my loop and exit the loop once the next (») button no longer exists: selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: »

Code:

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()

Please may I have some guidance on how to successfully exit the loop when the element no longer exists.
Thank you.

Source: Python Questions

LEAVE A COMMENT