#python #selenium
Вопрос:
Ниже приведен фрагмент HTML-кода с использованием page_source
метода в selenium.
Почему я не могу найти имя класса cell-content cell-colshopCapacity
?
'<div unselectable="on" class="x-grid-cell-inner" style="text-align:left;">Daily</div></td><td class="x-grid-cell x-grid-td x-grid-cell-templatecolumn-1065 x-grid-cell-last x-unselectable "><div unselectable="on" class="x-grid-cell-inner" style="text-align:left;"><span class="cell-content cell-colshopCapacity">101</span></div></td></tr></tbody></table></div></div></div><div class="x-container save x-container-default x-box-layout-ct" style="padding: 5px 15px 18px 9px; width: 907px;"
Использование приведенного ниже возвращает пустой список []
from selenium import webdriver
driver = webdriver.Chrome(r'path/to/chromedriver')
driver.find_elements_by_class_name('cell-content cell-colshopCapacity')
Если я использую driver.page_source
в vs-коде, он возвращает HTML-код с веб-страницы, именно так я смог создать приведенный выше фрагмент. Правильно ли я предполагаю, что если driver.page_source
возвращает HTML с указанным именем класса, то я смогу найти его, используя приведенное ниже, учитывая, что если бы он был в другом frame
, то он не вернул бы имя класса, которое я пытаюсь найти? Или я ошибаюсь в этом предположении?
driver.find_elements_by_class_name('cell-content cell-colshopCapacity')
Комментарии:
1. Я ничего не знаю о selenium/webdriver. Однако, если вы знаете, как получить HTML, я рекомендую вам попробовать BeautifulSoup для навигации по нему
Ответ №1:
имя класса не работает с пробелами в Selenium.
так что попробуйте изменить это на css_selector
вместо :
driver.find_elements_by_css_selector('span.cell-content.cell-colshopCapacity')