Ошибка при переходе к элементу
Хочу спарсить все напитки с сайта, браузер firefox. Действую по гайду + дорабатываю под свои нужды. Сначала столкнулся с проблемой что не переходит к элементу, так как он за пределами окна и реализовал через какой-то костыль со скроллом(описал, так как может быть из-за него тоже могут возникать проблемы). Теперь же он переходит к первой кнопке "показать далее", но на втором круге уже пишет что он скрыт. Я посмотрел через инспектор и увидел что на сайте действительно скрывается этот элемент, а потом добавляет такой же ещё ниже. Как мне всё-таки пройти через все "показать далее"
(Конечно, есть вариант в адресс ссылки выставить такое значение, чтобы все коктейли отображались сразу, но хочется сделать как-то правильнее)
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.firefox.service import Service
# поиск по классу : driver.find_element(by=by.CLASS_NAME, value="название класса")
def get_source_html(url):
service = Service('C:\\Users\\Administrator\\PycharmProjects\\PARSING\\geckodriver-v0.34.0-win64\\geckodriver.exe')
driver = webdriver.Firefox(service=service)
driver.maximize_window()
try:
driver.get(url=url)
time.sleep(3)
# element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "myDynamicElement")))
# common-end common-list-state - показаны все коктейли ; common-more common-list-state - посмотреть ещё 20
while True:
find_more_element = driver.find_element(By.XPATH, "/html/body/div[9]/div[1]/a[3]")
js_code = "arguments[0].scrollIntoView();"
if driver.find_elements(By.CLASS_NAME, "common-end"):
with open("source-page.html", 'w') as file:
file.write(driver.page_source)
else:
driver.execute_script(js_code, find_more_element)
actions = ActionChains(driver)
actions.move_to_element(find_more_element).click().perform()
time.sleep(3)
except Exception as _ex:
print(_ex)
finally:
driver.close()
driver.quit()
def main():
get_source_html('https://ru.inshaker.com/cocktails')
if __name__ == '__main__':
main()```

