Проблема з витягуванням тексту з вкладених тегів

webdriver
java
javascript
Теги: #<Tag:0x00007fedc013ce90> #<Tag:0x00007fedc013caa8> #<Tag:0x00007fedc013c710>

(Serhiy Bilorys) #1

Привіт, маю дану строку html коду:

<span class="sbpqs_a">kcura<b> relativity pricing</b></span>

Виникло таке питання :: потрібно витяну всесь такст з даної строки, зокрема проблема в тому, що текст <b>relativity pricing</b> не витягується за допомогою даного коду:

element = driver.findElements(By.className("sbsb_a");
element.getText();

Результатом є лише строка :: "kcura". Як витягувати текст з вкладених тегів правильно.
Буду радий будь-якій інформації, і взагалі, я тільки новачок, тому якщо можна ще киньте лінки з змістовними прикладами java+Selenium
Якщо можна ще приклади з пошуком/роботою JavaScript елементів
Дуже дякую!


(Sergey Korol) #2

getText() вытягивает значение по innerText, вам же нужен innerHTML.
Т.е. вначале вызываем getAttribute("innerHTML"), затем удаляем ненужные тэги.

П.С. И читаем гайд по форматированию кода. wink


(Sergey Korol) #3

Ну если подключен jQuery, то можно передавать значение селектора JS executor'у и вызывать уже API самой библиотеки по отношению к искомому элементу. К примеру:

public void jsClick(final String cssSelector) {
    ((JavascriptExecutor) driver).executeScript("$(\"" + cssSelector + "\").click();");
}

Если нет, то по старинке - передавать WebElement в качестве аргумента в JS скрипт.