Я хочу извлечь содержимое, соответствующее XPath: .//*[contains (@class, 'post-content')]
Однако я хочу sh исключить дочерние узлы:
1) Содержащий текст: P3 или AP
2) Div, содержащий id = bottom
3) Форма, содержащая ярлык с текстом: Получить обновления по электронной почте
У меня есть следующее HTML :
<div class="td-post-content">
<p>P1</p>
<p>P2</p>
<p>P3</p>
<p>P4</p>
<p>P5</p>
<p>AP</p>
<div id="td-a-rec bottom"> </div>
<form action="https://example.com/subscribe method=" post " id="subscribe-form " name="subscribe-form " class="validate " target="_blank " novalidate=" ">
<div id="signup_scroll ">
<label for="mce-EMAIL ">Get email updates from..</label>
<input type="email " value=" " name="EMAIL " class="email " id="EMAIL " placeholder="email address " required=" ">
<div style="position: absolute; left: -5000px; " aria-hidden="true "><input type="text " name="b_11 " tabindex="-1 " value=" "></div>
<div class="clear "><input type="submit " value="Subscribe " name="subscribe " id="-subscribe " class="button "></div>
</div>
</form>
</div>
Я могу добиться этого, используя синтаксис XPath
: [not(contains(@id,'bottom'))]
+ [not(contains(text(),'P3'))]
+ [not(contains(text(),'AP'))]
et c Однако основная проблема заключается в том, что вместо сопоставления всех желаемые дочерние элементы как один элемент - теперь он соответствует каждому элементу как WebElement List
.
Прямо сейчас единственный способ извлечь нужный текст - это перебрать список веб-элементов и объединить результаты в одну строку S enter code here
.
Можно напрямую очистить все желаемый контент за один раз (с одним вызовом element.getText()
) без необходимости перебирать список элементов?
Спасибо