Вы получаете все ссылки и некоторые из них изменяются при попытке получить hrefs, и это причина для StaleElementReferenceException
. Вы можете попытаться дождаться ссылки с необходимыми ссылками.
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# ...
names = [link.get_attribute('href') for link in WebDriverWait(driver, 10).until(
EC.presence_of_all_elements_located((By.CSS_SELECTOR, 'a[href$=".com/"]')))]
В приведенном выше примере ссылки получают a[href$=".com/"]
со всей страницы, а не scroll_box
дочерние элементы. Если вы хотите использовать scroll_box
, измените локатор на scroll_box_selector a[href$=".com/"]
или используйте пользовательское ожидание или внедрите пользовательский expected_conditions