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

Фотография

Оптимальный способ получения значений из элементов


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

#1 SergiyKo

SergiyKo

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

  • Members
  • Pip
  • 2 сообщений
  • ФИО:Сергей

Отправлено 19 февраля 2015 - 12:15

Добрый день.
 
Ситуация такая:
есть страница с таблицей; в таблице 3 колонки это выпадающие списки, 1 колонка текстовое поле ввода и 2 колонки это чекбоксы.
 
getText() из tbody выбирает полностью все варианты из выпадающих списков, а из полей ввода ничего не выбирает.
Пока что приходиться обращаться к каждому элементу и получать из него выбраное значение и текст.
 
Прикрепленный файл  2015-02-19_102221.png   9,78К   2 Количество загрузок:
 
Есть ли оптимальный способ получения всех выбранных значений из выпадающих списков,
введенных значений в текстовые поля и 
статусов чекбоксов за минимальное количество обращений к странице и элементам?
Если есть то какой?
 
 

  • 0

#2 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 19 февраля 2015 - 12:29

Ну, предположим, есть способ получить весь текст из таблицы, даже такой какая у вас.

Зачем вам такая каша текста, и как вы с ней будете работать?

Чем вас не устраивает обращение к каждой клетке таблицы?


  • 0

#3 Arch

Arch

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

  • Members
  • Pip
  • 15 сообщений
  • ФИО:Каримов Алексей

Отправлено 19 февраля 2015 - 12:48

Предположу, что в полях ввода текст хранится в аттрибутах подобно vlaue (или другой). Возможно вам поможет такой вариант driver.findElement(By.xpath("//tbody")).getAttribute("value")


  • 0

#4 aksas

aksas

    Активный участник

  • Members
  • PipPip
  • 130 сообщений
  • Город:Харьков

Отправлено 19 февраля 2015 - 12:49

за минимальное количество обращений к странице и элементам

это только взать весь elem.getAttribute("innerHTML") таблицы и парсить его самостоятельно.

можно попрбовать javascript'ом вытянуть все на стороне браузера.

а иначе только перебирать каждую клетку таблицы.


  • 0

#5 mazik7

mazik7

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

  • Members
  • Pip
  • 63 сообщений
  • ФИО:Мазик
  • Город:Красноярск

Отправлено 20 февраля 2015 - 05:00

Решение можно найти всегда.
Если вам необходимо получить значение всех селектов, то мне кажется нужно идти простым и напрашивающимся способом - то есть получить из каждой клетки. Узнал количество строк, запустил цикл и присвоил их в какую-нибудь коллекцию. Главное, что ничего не пропустишь. Как по мне распарсивание всего HTML-куска таблицы более трудозатратный способ.
Ну а что касается получение значения Selected option, то для надежности всегда можно посмотреть в каком аттрибуте хранится этот самый option. + ко всему обычно выбранный option имеет какой-то дополнительный аттрибут, с помощью XPath или CssSelector его не трудно будет выбрать. Да и класс Select вроде как позволяет получить это самое значение.


  • 0

:smile:


#6 SergiyKo

SergiyKo

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

  • Members
  • Pip
  • 2 сообщений
  • ФИО:Сергей

Отправлено 20 февраля 2015 - 07:48

Зачем вам такая каша текста, и как вы с ней будете работать?

В том то и дело, что с кашей работать не хочется. И интересно есть ли способ не обращаясь к каждой клетке получить выбранные элементы и введенный текст.

 

Решение можно найти всегда.
Если вам необходимо получить значение всех селектов, то мне кажется нужно идти простым и напрашивающимся способом - то есть получить из каждой клетки. Узнал количество строк, запустил цикл и присвоил их в какую-нибудь коллекцию. Главное, что ничего не пропустишь. 

Сейчас именно так и делаю..


  • 0


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

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