Как мне нажать все кнопки на моей странице, если их 5 и более? Мне нужно сделать это с помощью Selenium.
Скриншот элемента и исходного кода:
Вот что я пробовал:
find_more_element = driver.find_element(By.CLASS_NAME, 'products-tile__btn')
while True:
if not driver.find_elements(By.CLASS_NAME, 'products-tile__btn'):
with open("link_page.html", "w") as file:
file.write(driver.page_source)
break
else:
actions = ActionChains(driver)
actions.move_to_element(find_more_element).perform()
time.sleep(3)
конечно samara.docke.ru/facade
«2024»? Обычно мы не хотим, чтобы вопросы, которые, как ожидается, устареют, вместо того, чтобы поддерживать нашу цель по созданию базы знаний с течением времени. Есть ли причина, по которой вы ожидаете, что этот период продлится сравнительно недолго?
Когда я захожу в stackoverflow и захожу на любой из вопросов про селен, то обычно та библиотека уже обновлена и код не работает, поэтому я и указал, что это был именно 2024 год.
в чем проблема? Вы получили ошибку? Покажите это в вопросе (не в комментариях) как текст (а не изображение). Было бы проще, если бы вы создали минимальный рабочий код, который мы могли бы просто скопировать и протестировать.






Одна из проблем с этими кнопками заключается в том, что на странице их 10, но видны только 2. Итак, нам нужно захватить все кнопки, пройтись по каждой, проверить, видна ли она, если она видна, затем нажать ее. Код ниже был протестирован и работает.
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
url = 'https://samara.docke.ru/facade/'
driver = webdriver.Chrome()
driver.maximize_window()
driver.get(url)
wait = WebDriverWait(driver, 10)
buttons = wait.until(EC.visibility_of_any_elements_located((By.CSS_SELECTOR, "div.products-tile__more")))
for button in buttons:
if button.is_displayed():
button.click()
Спасибо, чатгпт помог мне с этим с 10 попытки) Но всё равно спасибо, хорошее решение
Можете ли вы дать ссылку на реальную страницу?