Перейти к содержимому

Фотография

Получить текст внутри span

#selenium #java

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 2

#1 volkoff5566

volkoff5566

    Новый участник

  • Members
  • Pip
  • 1 сообщений

Отправлено 05 января 2020 - 11:38

<span class="text">
 <span>1<span/>
 "Text1"
<span/>

Есть span внутри которого лежит текст ("Text1") и другой span с текстом "1". Как при помощи java+selenium получить только(!) текст верхнего span? 

p.s. Потом этот текст, а точнее строку нужно добавить в коллекцию строк. 

 

Пробую так:

WebElement source = driver.findElement(By.cssSelector("span.text"));
source.getText();

На выходе получаю строку

1 Text1 

А нужно получить

Text1 

  • 0

#2 sergueik

sergueik

    Постоянный участник

  • Members
  • PipPipPip
  • 166 сообщений
  • ФИО:кузьмин сергей

Отправлено 07 января 2020 - 01:41

так это известная проблема [5459](https://github.com/s...ive/issues/5459). она решается деструктивно, обходным путем - а зачем вам 


  • 0

#3 Alex

Alex

    Постоянный участник

  • Members
  • PipPipPip
  • 237 сообщений
  • ФИО:Алексей

Отправлено 09 января 2020 - 12:29

Работает, конечно, на тоненького, но в вашем случае должно хватить

public String getTextIgnoringInnerElements(WebElement element) {

     String text = element.getText();
     log("Got text '%s'", text);

     List<WebElement > children = element.findElements(By.xpath(".//*"));

     for(int i = 0; i < children.size(); i++ ){
       text = text.replaceFirst(Pattern.quote(children.get(i).getText()), "");
     }

     return text;
}

  • 2


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных