Как получить текст первой, подчеркивающей и последней части question
и сохранить ее в переменной, используя Splinter?Splinter: Получение фрагментов текста XPATH, которые не являются уникальными элементами
См. HTML внизу. Я хочу сделать следующие переменные имеют следующие значения:
first_part = "Jingle bells, jingle bells, jingle all the"
second_part = "_______"
third_part = "! Oh what fun it is to ride in one-horse open sleigh!"
я пошел here, использовал XPaths
//*[@id="question_container"]/div[1]/span/text()[1] #this is first_part
//*[@id="question_container"]/div[1]/span/span #this is second_part
//*[@id="question_container"]/div[1]/span/text()[2] #this is third_part
и применил их к ниже HTML. Они вернули желаемые значения в тесте, но для моей программы, Splinter, кажется, отказаться от них:
first_part = browser.find_by_xpath(xpath = '//*[@id="question_container"]/div[1]/span/text()[1]').text
second_part = browser.find_by_xpath(xpath = '//*[@id="question_container"]/div[1]/span/span').text
third_part = browser.find_by_xpath(xpath = '//*[@id="question_container"]/div[1]/span/text()[2]').text
print first_part
print second_part
print third_part
-------------- OUTPUT -------------
[]
[]
[]
Что я делаю не так, почему это не так, и как я должен изменить свой код?
Упомянутый к HTML (который был слегка отредактированного в «Jingle Bells», чтобы лучше передать эту проблему) был получен с помощью browser.html
особенность Splinter:
<div id="question_container" style="display: block;">
<div class="question_wrap">
<span class="question">Jingle bells, jingle bells, jingle all the
<span class="underline" style="display: none;">_______</span>
<input type="text" name="vocab_answer" class="answer" id="vocab_answer"></input>
! Oh what fun it is to ride in one-horse open sleigh!</span>
</div></div>
Что я использую вместо 'find_by_xpath()'? Я не могу найти другой соответствующий метод в документации Splinter. –
@Princee вы должны найти 'span' с' class = "question" 'first. Затем вы можете получить части текста, есть несколько вариантов. Можете ли вы предоставить ссылку на веб-сайт для проверки? Благодарю. – alecxe
@Princee спасибо, пожалуйста, попробуйте решение в обновленном ответе. – alecxe