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

请给我一些关于当元素不再存在时如何成功退出循环的指导。谢谢。


呼啦一阵风
浏览 43回答 1
1回答

泛舟湖上清波郎朗

试试这个:在代码中添加“try”和“ except”函数。使用它们,代码不会返回错误,但会停止。如果你愿意,你可以在出错时重复循环,你只能在 try 结束时放置break。while True: 尝试: #some 代码中断 except: #some 代码
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python