При поиске элементов на странице с помощью Selenium Python получаю обратно пустой список

На странице есть, например, следующий элемент:

<div class="iconTabSheet139_1 PPTSPicture " style="width: 16px; height: 16px; left: 28.5px; top: 5.5px; background-size: cover; cursor: pointer;"></div>

Есть еще несколько элементов с таким же классом. Я пыталась их найти следующим образом:

elements = browser.find_elements_by_css_selector('div.iconTabSheet139_1.PPTSPicture')

Однако я получаю пустой список: введите сюда описание изображения

Что я делаю не так и как это исправить?


Ответы (2 шт):

Автор решения: WTFisGoingOn

Получаешь пустой список, потому что ищешь CSS стили методом find_elements_by_css_selector, а пишешь классы.

Если есть несколько таких элементов на странице - сделай с помощью XPath. Есть множество замечательных расширений для браузера, например - XPath Finder

Пример как использовать:

element = browser.find_element(By.XPATH, '/html/body/div[11]/div/div/div[1]/button/span') 
#Второе значение - то, что выдаст расширение
→ Ссылка
Автор решения: Ульяна

Проблема решилась с помощью xpath:

elements = browser.find_elements_by_xpath("//div[contains(@class,'iconTabSheet139_1 PPTSPicture')]")
→ Ссылка