Здраствуйте! Есть скрипт, который парсит названия карт, если в названии есть какой-нибуть английский символ, то он заходит в эту карту и берет от туда автора, ссылку на профиль автора и дискорд(если есть) и создает екземпляр класса MapMaker и добавляет его в множество mapmakers. Если в названии карты нет английского символа, то скрипт заходит в эту карту и проверяет на наличие английского символа имя автора. Если есть - создает екземпляр класа MapMaker, добавляет его в множество mapmakers и возвращается обратно на страницу с картами. Но появляется ошибка selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: stale element not found. Как от нее избавиться?
Код:
<br>
required_letters = 'qwertyuiopasdfghjklzxcvbnm'<br>
<br>
maps_names = driver.find_elements(By.CLASS_NAME, 'title')<br>
print(len(maps_names))<br>
<br>
class MapMaker:<br>
def __init__(self, username, social_media_link, link_to_profile):<br>
self.username = username<br>
self.social_media_link = social_media_link<br>
self.link_to_profile = link_to_profile<br>
<br>
mapmakers = set()<br>
<br>
i = 0<br>
for map_name in maps_names:<br>
for required_letter in required_letters:<br>
for letter in maps_names[i].text:<br>
if letter == required_letter:<br>
maps_names[i].click()<br>
try:<br>
author_name = driver.find_element(By.XPATH, '//*[@id="app"]/div/main/div/div/div/div[1]/div[1]/dl/dd[1]/div/a/span')<br>
profile_link = driver.find_element(By.XPATH, '//*[@id="app"]/div/main/div/div/div/div[1]/div[1]/dl/dd[1]/div/a')<br>
social_media = driver.find_element(By.XPATH, '//*[@id="app"]/div/main/div/div/div/div[1]/div[1]/dl/dd[3]/a/span')<br>
except NoSuchElementException:<br>
pass<br>
<br>
mapmaker = MapMaker(author_name, social_media, profile_link)<br>
mapmakers.add(mapmaker)<br>
<br>
driver.back()<br>
i += 1<br>
else:<br>
try:<br>
maps_names[i].click()<br>
except StaleElementReferenceException:<br>
pass<br>
try:<br>
author_name = driver.find_element(By.XPATH, '//*[@id="app"]/div/main/div/div/div/div[1]/div[1]/dl/dd[1]/div/a/span').text<br>
profile_link = driver.find_element(By.XPATH, '//*[@id="app"]/div/main/div/div/div/div[1]/div[1]/dl/dd[1]/div/a').get_attribute('href')<br>
social_media = driver.find_element(By.XPATH, '//*[@id="app"]/div/main/div/div/div/div[1]/div[1]/dl/dd[3]/a/span').text<br>
# description = driver.find_element(By.CLASS_NAME, '//*[@id="app"]/div/main/div/div/div/div[1]/div[1]/dl/dd[4]/span')<br>
except NoSuchElementException:<br>
pass<br>
<br>
for letter in author_name:<br>
if letter == required_letter:<br>
mapmaker = MapMaker(author_name, social_media, profile_link)<br>
mapmakers.add(mapmaker)<br>
<br>
driver.back()<br>
i += 1<br>
<br>
# if description.text == '':<br>
# for letter in description.text:<br>
# if letter == required_letter:<br>
# mapmaker = MapMaker(author_name, social_media, profile_link)<br>
# mapmakers.add(mapmaker)<br>
<br>
print(mapmakers)<br>