2016-08-05 3 views
-1

пытаюсь получить следующий текстКак получить имя свойства css с помощью selenium-python?

5 ⭐'s all the way! There is no better place to be! 

с помощью следующей

reviews_title = browser.find_elements_by_xpath('//span[@class="review-title"]/following-sibling::') 

из сниппета ниже

<div class="review-info"> 
<span class="review-title">Love!</span> 
5 ⭐'s all the way! There is no better place to be! 
</div> 
+0

кажется я не могу найти строку –

+1

Вы должны показать немного больше из html, какой тег есть на самом деле? – Josh

ответ

1

Если у вас есть HTML как это:

<div class="review"> 
    <span class="review-title">Love!</span> 
    5 ⭐'s all the way! There is no better place to be! 
</div> 
<div class="review"> 
    <span class="review-title">Foo!</span> 
    Lorem ipsum dolor sit amet 
</div> 
<div class="review"> 
    <span class="review-title">Bar!</span> 
    Aenean in elit id lorem aliquam 
</div> 

Вы можете получить текст, удалив .review-элемент заголовка

parent_elems = browser.find_elements_by_css_selector('.review') 
for elem in parent_elems: 
    review_title = elem.find_element_by_css_selector('.review-title') 
    review_title_text = review_title.text # get review title text 

    # remove review_title element 
    browser.execute_script(""" 
    var element = arguments[0]; 
    element.parentNode.removeChild(element); 
    """, review_title) 

    # this is the text 
    text = elem.text 

    print "%s\t %s \n-------" % (review_title_text, text) 
+0

Что делает сценарий, предполагая, что у нас уже есть текстовый элемент обзора? –

+0

сценарий выполняет итерации над элементами .review, удаляет для каждого .review-title. когда вы удаляете элемент .review-title, текст родительского узла становится текстом, который вы хотите получить (всего 5 way! Нет лучшего места!) – talhasch

0

Текст внутри body тегов, вы можете сразу определить его с помощью: -

reviews_title = browser.find_elements_by_xpath('//body/text()') 
Смежные вопросы