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

Фотография

getText (getValue) для дефолтного значения dropbox


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

#1 Vikonder

Vikonder

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

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

Отправлено 04 июня 2018 - 05:34

Камрады!

 

Такая вот задачка, есть DropBox со списком и дефолтным значением (mandatory из изначальной конфигурации)

Прикрепленный файл  SH_24 Jun. 04 08.26.jpg   2,43К   0 Количество загрузок:

 

Прикрепленный файл  SH_24 Jun. 04 08.27.jpg   5,45К   0 Количество загрузок:

 

Задача: Прочитать значение, которое отборажено в окошке DropBox. Именно считать это значение для дальнейшего assert, не выбрать кликнув, а считать!

 

html код:

 

 

<select id="CabinetHeight" class="i-sp-elevation-sidebar-form-item-input ng-pristine ng-valid ng-not-empty ng-touched" ng-hide="isReadOnly" ng-change="events.rackHightChanged()" name="useableRackUnits" ng-model="rackModel.rackHight" ng-options="rackUnit for rackUnit in useableRackUnits" style="">

<option label="44" value="number:44">44</option>
<option label="42" value="number:42" selected="selected">42</option>
<option label="52" value="number:52">52</option>
<option label="46" value="number:46">46</option>
</select>

 

Select метод - дает возможность выбора по индексу, значению и видимости объекта.

 

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

 

Мне просто нужно банально считать value с экрана и передать в виде String или Integer для дальнейшего сравнения с иходными данными.


  • 0

#2 TatyanaV

TatyanaV

    Опытный участник

  • Members
  • PipPipPipPip
  • 388 сообщений
  • ФИО:Воробьева Татьяна


Отправлено 04 июня 2018 - 06:03

findElements(By.cssSelector("#CabinetHeight option")).size(); - общее количество.

Если нужно сложить сами значения - то тем же findElements получаете список опций, а потом просто стандартными средствами ЯП суммируете значения.

Сами значения - либо из атрибута label вытаскивать, либо из атрибута value с отрезанием "number:" (element.getAttribute("xxx")). 


  • 0

#3 Vikonder

Vikonder

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

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

Отправлено 04 июня 2018 - 06:11

Может я некорректно спросил.... но цель - не создать список значений размера size, а потом выбирать элемент из списка и считывать значение,

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

Или такая фишка не получится?


  • 0

#4 Alex

Alex

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

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

Отправлено 04 июня 2018 - 06:45

Может я некорректно спросил.... но цель - не создать список значений размера size, а потом выбирать элемент из списка и считывать значение,

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

Или такая фишка не получится?

https://seleniumhq.g.../ui/Select.html

getFirstSelectedOption

getAllSelectedOptions


  • 0

#5 Noksa

Noksa

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

  • Members
  • PipPip
  • 117 сообщений
  • ФИО:Александр

Отправлено 04 июня 2018 - 07:51

Надо учитывать, что если значение никакое не выбрано - у вас вылетит эксепшн. 


  • 0

#6 Snap

Snap

    Специалист

  • Members
  • PipPipPipPipPip
  • 980 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 04 июня 2018 - 09:46

Может я некорректно спросил.... но цель - не создать список значений размера size, а потом выбирать элемент из списка и считывать значение,

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

Или такая фишка не получится?

css=#CabinetHeight option[selected="selected"]

xpath=//select[@id="CabinetHeight"]/option[@selected="selected"]


  • 0

#7 Vikonder

Vikonder

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

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

Отправлено 29 июня 2018 - 15:56

Возвращаюсь к своему вопросу...

 

Для метода Select я не вижу в списке возможности вернуть String or Integer

 

post-47229-0-99592800-1530286783_thumb.j

 

Непонятно, как всё таки можно прочитать значение DropBox поля для элементов Options используя Select

 

 

<div class="i-sp-elevation-sidebar-form-item" formation-id="rackHight">

<label class="i-sp-elevation-sidebar-form-item-label ng-binding" for="CabinetHeight" ng-bind="spStringConstants.rackDetails.cabinetHeight">Cabinet Height</label>
<select id="CabinetHeight" class="i-sp-elevation-sidebar-form-item-input ng-pristine ng-untouched ng-valid ng-not-empty" ng-hide="isReadOnly" ng-change="events.rackHightChanged()" name="useableRackUnits" ng-model="rackModel.rackHight" ng-options="rackUnit for rackUnit in useableRackUnits" style="">
<option label="44" value="number:44">44</option>
<option label="42" value="number:42" selected="selected">42</option>
<option label="46" value="number:46">46</option>
<option label="52" value="number:52">52</option>
</select>
<input class="i-sp-elevation-sidebar-form-item-input ng-pristine ng-untouched ng-valid ng-hide ng-not-empty" ng-show="isReadOnly" ng-model="rackModel.rackHight" ng-readonly="true" readonly="readonly" style="" type="number"/>
</div>

 

1. Пытался выбирать default value:

String defaultValue= driver.findElement(//select[@id='CabinetHeight']//option[@selected='selected']).getText();

Integer actualSize= Integer.parseInt(defaultValue);

 

------>  возвращает пустое значение ""

post-47229-0-49427300-1530287316_thumb.j

 

2. Пытался через индекс или само значение и всё время упираюсь, что всё время возвращается VOID

 

 

 

 

 

Прикрепленные файлы


  • 0

#8 Noksa

Noksa

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

  • Members
  • PipPip
  • 117 сообщений
  • ФИО:Александр

Отправлено 02 июля 2018 - 04:51

Возвращаюсь к своему вопросу...

 

 

Попробуйте на селекте вызвать

element.GetAttribute("title");

вместо getText();

 

Так же вроде в джаве есть такой метод:

select.getFirstSelectedOption();

  • 0


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

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