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。
而真实的:
尝试:
#一些代码
休息
除了:
#一些代码
当我尝试解析循环的最后一页并在下一个 (») 按钮不再存在时退出循环时出现以下错误: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。 而真实的: 尝试: #一些代码 休息 除了: #一些代码