Как извлечь динамический текст из нескольких дочерних узлов в HTML через getText () - PullRequest
0 голосов
/ 26 июня 2018

У нас есть Div, содержащий некоторый жестко закодированный текст, и span, содержащий некоторые динамические текстовые значения (для более полного понимания обратитесь к HTML-коду).Результирующий текст: 1 Задачи, которые должны быть обновлены с 'XYZ' до 'ABC'

, но когда я получаю с использованием локатора Selenium, то есть

final String actual = $("#bulk_update_confirmation").text();

Затемфактическое содержит только «Задачи для обновления с до».Весь динамический текст отсутствует.

HTML-код указан ниже (используется браузер Chrome)

<div id="bulk_update_confirmation" class="ui-dialog-content ui-widget-content" style="display: block; width: auto; min-height: 96.16px; height: auto;" scrolltop="0" scrollleft="0">
            <span id="taskCountSpan">1</span> Tasks to be updated from <span id="oldStatusSpan">'XYZ'</span> to <span id="newStatusSpan">'ABC'</span> <span id="desciptionSpan"> </span> <br>
            <hr>
            <div class="ui-dialog-buttonset">
                <button type="button" id="btn_bulk_update" onclick="updateBulkStatus()">Update</button>
                <button type="button" onclick="closeBulkUpdateRequest()">Cancel</button>
            </div>
        </div>

Ответы [ 2 ]

0 голосов
/ 26 июня 2018

Вы можете использовать метод Webelement.getText() для извлечения текста, и вы можете получить ожидаемый результат, как показано ниже

String actual =driver.findElement(By.id("bulk_update_confirmation")).getText();
0 голосов
/ 26 июня 2018

Прежде чем пытаться извлечь весь текст, например 1 Задачи, которые нужно обновить с 'XYZ' до 'ABC' , вы можете вызвать WebDriverWait для всех трех дочерних элементов быть видимым , и вы можете использовать следующее решение:

new WebDriverWait(driver, 10).until(ExpectedConditions.and(
    ExpectedConditions.visibilityOfElementLocated(By.xpath("//span[@id='taskCountSpan']")),
    ExpectedConditions.visibilityOfElementLocated(By.xpath("//span[@id='oldStatusSpan']")),
    ExpectedConditions.visibilityOfElementLocated(By.xpath("//span[@id='newStatusSpan']"))
));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...