webElement.getText() как забрать нужный элемент

235
12 августа 2017, 02:03

Пишу автотест, который проверяет некое поле на сайте, на соответствие. Все работает нормально, но: обычно обращаюсь к какому-либо элементу и через randomelement.getText(); забираю текст.

Возникла проблема, что в моем случае нужный мне текст(не в теге) находится в div, и помимо этого текста, есть другие строки, заключенные в теги(все это находится в вышеупомянутом div).

В итоге вылезает не "1 шт." , а например: "Ваша книга: 1 шт. Название книги."

Вопрос: можно как-то попробовать выудить только "1 шт."?

Текст проверяю через - assertEquals(radndomElement.getText(), "1 шт.");

Использую: Java, Selenium, TestNg.

Answer 1

Как вариант попробуйте:

  1. получит список вложенных тегов
  2. получить текст из каждого вложенного тега
  3. удалить из основного текста содержимое каждого вложенного тега.
Answer 2

Вообщем посмотрел по ссылке, у них был такой код:

public static String geNodeText(WebElement element) {
    String text = element.getText();
    for (WebElement child : element.findElements(By.xpath("./*"))) {
      text = text.replaceFirst(child.getText(), "");
    }
    return text;
  }

Код работает, но в моем случае он выдает это в виде:

1 строка
2 строка 
3 строка

Сделал свой вариант:

public static String geNodeTextSec(WebElement element,int startStringPoint,int endStringPoint) {
    String text = element.getAttribute("innerText").trim().replaceAll("\\n", ""); // Весь текст перегоняем в одну строку
    String newText = text.substring(startStringPoint,endStringPoint); // Выбираем нужный нам отрезок
        return newText;
}
READ ALSO
Как достать обложку альбома файла мр3?

Как достать обложку альбома файла мр3?

Конкретной инфы нет, где и с какого байта искать обложкуМожет у кого есть соображения?

247
Можно ли как-то приостановить показ баннеров AdMob?

Можно ли как-то приостановить показ баннеров AdMob?

В приложении исправно показываются баннеры и все работает, но можно ли как-то временно отключить показ рекламы? Боюсь, что из-за малого количества...

261
Работа со строками в java [требует правки]

Работа со строками в java [требует правки]

Необходимо заменить в слове все маленькие латинские буквы от ‘a’ до ‘y’ на следующие по алфавиту (для слова “abc2=zx0” получаем “bcd2=zy0”)

240
Возможно ли дополнять Runnable по 1 команде?

Возможно ли дополнять Runnable по 1 команде?

Мой план хотелось бы как то преобразовать из строк в команды, но так как я знаю как обрабатывать строки, остается лишь как то дополнять Runnable...

232