На самом деле вы пытаетесь найти путь после тегов p
и b
. это будет выглядеть примерно так.
<div class="left width50">
<p><b>Features:<ul>
<li>Easy spray application</li>
<li>Excellent bonding properties</li>
<li>Single package</li>
<li>Mixed with clean potable water at job site</li>
</ul></b></p>
</div>
Но ваш код в HTML отличается.
Так что вы должны осмотреться без тегов p
и b
.
Вот быстрая помощь, которую вы можете получить из Chrome. Перейдите к опции разработчика с помощью f12 key
и перейдите на вкладку элементов, а затем щелкните правой кнопкой мыши элемент, который вы хотите найти, и выберите значение селектора.
Вы можете узнать больше о том, как найти этот элемент здесь
Если вы хотите использовать xPath
, это правильный путь xpath для вас - //*[@id="borderForGrid"]/div[1]/ul
Процесс извлечения
Как только вы получите все ul
, это поможет вам получить весь текст li
all_li = all_ul_from_xpath.find_elements_by_tag_name("li")
for li in all_li:
text = li.text
print (text)
Рабочий код для справки.
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get("http://www.carboline.com/products/")
elem = driver.find_element_by_xpath('//*[@id="borderForGrid"]/div[1]/ul')
all_li = elem.find_elements_by_tag_name("li")
for li in all_li:
text = li.text
print (text)
Выход