Я пытаюсь очистить этот сайт с разбивкой на страницы. Проблема, с которой я столкнулся, заключается в том, что селен находит следующую кнопку.

Что я пробовал:

next_button = driver.find_element_by_css_selector(
    'ul[class="css-12ke8jn e65zztl0"] button[aria-label="Next"]').click()

А также

page_amount = driver.find_element_by_css_selector(
    '/html/body/div[1]/div[2]/div/div/div/div[2]/div[1]/main/div[3]/div/div[2]/div[2]/nav/ul/button').click()

Ничего из этого не работает, и я как бы застрял. Причина, по которой я использую aria-label для первой, заключается в том, что при выборе следующей кнопки предыдущая кнопка изменяется на тот же класс, что и следующая кнопка. Примечание: кнопка находится внутри ul.

0
Nick 23 Янв 2021 в 20:54

3 ответа

Лучший ответ

Next_button = driver.find_element_by_xpath ('// кнопка [@ class = "css-1lkjxdl eanm77i0"]'). click ()

Вы использовали переменную xpath и нашли ее с помощью css. для селектора css вы должны использовать класс (.css-1lkjxdl) и использовать приведенный выше код, он будет работать и примет ответ. Благодаря!!

1
Karan Verma 23 Янв 2021 в 20:08

aria-label - это атрибут, а не элемент.

Ваш xpath должен быть исправлен следующим образом:

button[@aria-label="Next"]

Чтобы найти эту кнопку в любом месте страницы, вы можете попробовать:

//button[@aria-label="Next"]

Затем вы можете попробовать:

button = driver.find_element_by_xpath('//button[@aria-label="Next"]')
0
Laurent LAPORTE 23 Янв 2021 в 18:04

Поиск элемента может не сработать, потому что он не отображается в пользовательском интерфейсе - он загружен, но не отображается, самый простой способ - перейти к этому элементу и щелкнуть по нему.

next_button = driver.find_element_by_css_selector('[aria-label=\'Next\']')
actions = ActionChains(driver)
actions.move_to_element(next_button).perform()
next_button.click()
0
Alin Stelian 23 Янв 2021 в 19:53
65862534