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

Эффективное использование TestNG и JUnit
онлайн, начало 20 апреля
Логи как инструмент тестировщика
онлайн, начало 23 апреля
Тестирование производительности (HP Load Runner)
онлайн, начало 20 апреля
Управление требованиями
онлайн, начало 20 апреля
Фотография

Исключение тега в XPath

xpath

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

#1 SlyFox

SlyFox

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

  • Members
  • Pip
  • 8 сообщений
  • ФИО:Карпушин Василий Юрьевич


Отправлено 02 Март 2017 - 12:29

Всем привет!

Ситуация такая:

Есть код:

 

<div id="id">
<b>text1</b>
<br>text2<br>
<br>text3<br>
<i>text4</i> 
</div>
 
Задача состоит в том что в этом диве мне нужно получить текст всех тегов за исключением тега "<i>"
 
Сам пробовал конструкции типа 
.//div[@id='content']/[not(self::i)]
 
Но это не помогло
 
Всем заранее спасибо!

  • 0

#2 Lzk

Lzk

    Специалист

  • Members
  • PipPipPipPipPip
  • 503 сообщений
  • ФИО:Олег
  • Город:Мск

Отправлено 02 Март 2017 - 12:41

//*[@id='id']/*[not(self::i)]

  • 0

#3 SlyFox

SlyFox

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

  • Members
  • Pip
  • 8 сообщений
  • ФИО:Карпушин Василий Юрьевич


Отправлено 02 Март 2017 - 12:50

//*[@id='id']/*[not(self::i)]

Попробовал, помогло, но не совсем. Из моего примера троки text2 и text3 тоже в итоге отрезаются.


  • 0

#4 Lzk

Lzk

    Специалист

  • Members
  • PipPipPipPipPip
  • 503 сообщений
  • ФИО:Олег
  • Город:Мск

Отправлено 02 Март 2017 - 13:00

 

//*[@id='id']/*[not(self::i)]

Попробовал, помогло, но не совсем. Из моего примера троки text2 и text3 тоже в итоге отрезаются.

 

//*[@id='id']/text() | //*[@id='id']/*[not(self::i)][text()]

  • 0

#5 SlyFox

SlyFox

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

  • Members
  • Pip
  • 8 сообщений
  • ФИО:Карпушин Василий Юрьевич


Отправлено 02 Март 2017 - 13:17

 

 

//*[@id='id']/*[not(self::i)]

Попробовал, помогло, но не совсем. Из моего примера троки text2 и text3 тоже в итоге отрезаются.

 

//*[@id='id']/text() | //*[@id='id']/*[not(self::i)][text()]

Класс, но как это описать на Java?

Я получаемый текст делал через getText и записывал в строку. Тоесть так:

String allData = wd.findElement(By.xpath("//*[@id='id']")).getText();

 Мне в итоге надо получить строку.


  • 0

#6 Lzk

Lzk

    Специалист

  • Members
  • PipPipPipPipPip
  • 503 сообщений
  • ФИО:Олег
  • Город:Мск

Отправлено 02 Март 2017 - 13:28

String allData = wd.findElement(By.xpath("//*[@id='id']/text() | //*[@id='id']/*[not(self::i)][text()]")).getText();

  • 0

#7 SlyFox

SlyFox

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

  • Members
  • Pip
  • 8 сообщений
  • ФИО:Карпушин Василий Юрьевич


Отправлено 02 Март 2017 - 13:31

String allData = wd.findElement(By.xpath("//*[@id='id']/text() | //*[@id='id']/*[not(self::i)][text()]")).getText();

На самом деле нет. Потому что  wd.findElement ожидает тип WebElement, а в Вашем случае получается, что он передает строку. Без параметра /text() я тоже пробовал подставить но в итоге так же ничего не получается.

И вообще вываливается исключение

 

org.openqa.selenium.InvalidSelectorException: invalid selector: The result of the xpath expression "//*[@id='content']/text() | //*[@id='content']/*[not(self::i)][text()]" is: [object Text]. It should be an element.
 
 

  • 0

#8 Lzk

Lzk

    Специалист

  • Members
  • PipPipPipPipPip
  • 503 сообщений
  • ФИО:Олег
  • Город:Мск

Отправлено 02 Март 2017 - 13:45

а так не пробовали ?

//*[@id='id'] | //*[@id='id']/*[not(self::i)]

  • 0

#9 SlyFox

SlyFox

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

  • Members
  • Pip
  • 8 сообщений
  • ФИО:Карпушин Василий Юрьевич


Отправлено 02 Март 2017 - 13:47

 

а так не пробовали ?

//*[@id='id'] | //*[@id='id']/*[not(self::i)]

Пробовал, там результат в итоге не отличается от исходного.

 

В целом задачу решил, в другом месте с помощью регулярных выражений, но всё же хотелось бы понять на будущее возможно ли решение с помощью исключения xpath


  • 0


Selenium 2.0: стартовый уровень
онлайн, начало 13 апреля
Программирование на Java для тестировщиков
онлайн, начало 4 мая
Автоматизация функционального тестирования
онлайн, начало 25 мая
Selenium WebDriver: полное руководство
онлайн, начало 11 мая




Темы с аналогичным тегами xpath

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

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

Яндекс.Метрика
Реклама на портале