Как получить текст элемента вместе с <br>как текст, а не как новую строку - PullRequest
0 голосов
/ 07 сентября 2018

Outlined problem

На изображении выше, как мы видим, в тексте есть <\br>. Теперь в утверждении assert я должен проверить его по выбранной опции, которая имеет «пробел», но не <\br>, которая возвращает текст после него в новую строку.

Итак, что я пытаюсь сделать, это то, что я хочу получить значение <div>, включая <\br>, как «текст», чтобы я мог получить весь текст и заменить <\br> на «пробел». а затем сверяйте с ожидаемым текстом.

Я пытался - <br>

  1. getAttribute("textContent"):
 driver.findElement(By.xpath(//div[contains(@class,'v-label')])).getAttribute("textContent");

, который извлекает текст без <\br> как - CIABC-Idq BLA HLA N1 Dd/Coind(BLen AccBLA HLA)

  1. getAttribute("innerText")
driver.findElement(By.xpath(//div[contains(@class,'v-label')])).getAttribute("innerText");

, который возвращает текст с возвратом к новой строке, например -
CIABC-Idq BLA HLA N1 Dd/Coind (BLen AccBLA HLA)

Ожидаемое

  1. Мне нужно либо получить текст с пробелом между CIABC-Idq BLA HLA N1 Dd/Coind и (BLen AccBLA HLA)

или

  1. Весь текст вместе с <\br> между CIABC-Idq BLA HLA N1 Dd/Coind и (BLen AccBLA HLA), чтобы я мог заменить символы <\br> пробелом и затем подтвердить строку с ожидаемым значением.

ОТКРЫТКА КОДА HTML:

<div class="v-slot">
    <div class="v-label v-widget v-label-undef-w">
        CIABC-Idq BLA HLA N1 Dd/Coind
        <br>
        (BLen AccBLA HLA)
    </div>
</div>

кто-нибудь может помочь?

1 Ответ

0 голосов
/ 07 сентября 2018

textContent будет оценивать управляющие символы, а innerText будет оценивать <br> теги, возвращая только текст. (см. разница между textContent и innerText )

Вместо этого вы можете получить свойство innerHTML :

driver.findElement(By.xpath(//div[contains(@class,'v-label')])).getAttribute("innerHTML");

Свойство Element innerHTML получает или устанавливает разметку HTML или XML, содержащуюся в элементе.

innerHTML сохранит разметку.

...