Задать вопрос
@AmirDigiev

Как нажать несколько кнопок одновременно на selenium python?

При написании парсера avito столкнулся с проблемой большого числа кнопок на сайте. Могу нажать на одну, а на несколько не выходит. Есть ли такое в selenium вообще? Думал, попробовать через цикл, не получается:

driver = webdriver.Edge()
driver.get('https://www.avito.ru/moskva/nedvizhimost')

    soup = BeautifulSoup(html, 'lxml')
    button = soup.find_all('button', class_ = 'button button-origin button-origin_large button-origin_full-width recommendations-show-more js-recommendations-show-more')

    for button_click in button:
        button = driver.find_element_by_xpath('//button[@class="button button-origin button-origin_large button-origin_full-width recommendations-show-more js-recommendations-show-more"]').click()


HELP!
  • Вопрос задан
  • 1128 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
Очевидно Вы ошиблись, одновременно нажать не получится, только последовательно.
Вот пример, как нажать последовательно:
from selenium import webdriver

driver = webdriver.Edge()
driver.get('https://www.avito.ru/moskva/nedvizhimost')
all_buttons = driver.find_elements_by_xpath('//button[@class="recommendations-show-more js-recommendations-show-more"]')
for button in all_buttons:
    button.click()

По моему, имя класса для выборки можно сократить, главное чтобы выбирал уникальные кнопки. Библиотеку BeautifulSoup не нужно использовать, т.к. Selenium имеет средства для парсинга. Можно ознакомится в документации.

FIXED: Была ошибка в строке поиска. Забыл закрыть ковычки и скобку ( "] )
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Nickname111
for button_click in button:
    button_click.click()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы