Я изменил ваш скрипт, как показано ниже.
Вы должны получить элемент для l oop, иначе это вызовет исключение ссылки на устаревший элемент.
И использование WebDriverWait для ожидания элементов, которые будут виден перед поиском элемента.
from selenium import webdriver
from bs4 import BeautifulSoup
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from time import sleep
browser = webdriver.Chrome()
browser.get('https://www.nyse.com/listings_directory/stock')
symbol_list = []
while True:
table_data = WebDriverWait(browser, 10).until(EC.visibility_of_all_elements_located((By.XPATH, "//table//td")))
for i in range(1, len(table_data)+1):
td_text = browser.find_element_by_xpath("(//table//td)["+str(i)+"]").text
print(td_text)
symbol_list.append(td_text)
try:
print("Go to next page ...")
next_page = WebDriverWait(browser, 10).until(EC.element_to_be_clickable((By.XPATH, '//a[@href="#" and contains(text(),"Next")]')))
next_page.click()
sleep(3)
except Exception as e:
print(e)
print("This is last page.")
break