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

Программирование на Java для тестировщиков
онлайн, начало 17 июля
Практикум по тест-дизайну 2.0
онлайн, начало 17 июля
Первый Онлайн ИНститут Тестировщиков
онлайн, начало 20 июля
Selenium WebDriver: полное руководство
онлайн, начало 24 июля
Фотография

Прочитать текст из "Disabled" Input form

form selenium input read disable

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

#1 Vikonder

Vikonder

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

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

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

Камрады!

 

Есть вот такая форма UI:

 

Прикрепленный файл  SH_27 Jul. 31 16.46.jpg   9,65К   1 Количество загрузок:

 

с вот таким вот HTML кодом FE:

<div class="sw-select ng-scope" ng-if="ctrl.showTabs" style="">

   <input class="ng-pristine ng-untouched ng-valid ng-not-empty ng-valid-required ng-valid-pattern" name="zoneName" ng-model="ctrl.newZone.zoneName" ng-pattern="/^LOL[1-9][0-9]?$/i" ng-required="true" ng-disabled="ctrl.showTabs" required="required" disabled="disabled" type="text"/>
     <div class="sw-select-list">
       <!-- ngRepeat: site in ctrl.allAvailableZoneNames | filter: ctrl.newZone.zoneName | limitTo:10 -->
       <div class="sw-select-item ng-binding ng-scope" ng-repeat="site in ctrl.allAvailableZoneNames | filter: ctrl.newZone.zoneName | limitTo:10" ng-click="ctrl.newZone.zoneName = site">   LOL25 </div>
         <!-- end ngRepeat: site in ctrl.allAvailableZoneNames | filter: ctrl.newZone.zoneName | limitTo:10 -->
       </div>
     <div class="sw-select-error">
</div>

Задача: Прочитать содержимое "disable" input формы и передать в String

 

Код:

xpath:
public static final By ZONE_FORM_NAME = By.xpath("//div[@ng-if='ctrl.showTabs']");


String actualZoneName = driver.findElement(NewZoneElements.ZONE_FORM_NAME).getAttribute("value");
Возвращает null

String actualZoneName = driver.findElement(NewZoneElements.ZONE_FORM_NAME).getText();
ничего не возращает

Как можно это прочитать?


  • 0

#2 BabyRoot

BabyRoot

    Специалист

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


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

.getAttribute("innerHTML");


  • 0

#3 TatyanaV

TatyanaV

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

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


Отправлено 01 августа 2018 - 10:58

Попробуйте обращаться не к div'у, в которому куча других элементов, а непосредственно к тому div'у, в котором лежит нужный Вам текст:

<div class="sw-select-item ng-binding ng-scope" ng-repeat="site in ctrl.allAvailableZoneNames | filter: ctrl.newZone.zoneName | limitTo:10" ng-click="ctrl.newZone.zoneName = site">   LOL25 </div>


  • 0

#4 Vikonder

Vikonder

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

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

Отправлено 05 августа 2018 - 07:49

Спасибо всем, наконец добрался for this task

 

.getAttribute("innerHTML"); - вернул мне все объекты в огромном длинном списке с изменеяющимся динамическим индексом конце 

 

Попробовал спустится вниз по иерархии div -->

xpath:
public static final By ZONE_FORM_NAME = By.xpath("//div[@class='sw-select-item ng-binding ng-scope']");


String actualZoneName = driver.findElement(NewZoneElements.ZONE_FORM_NAME)..getAttribute("innerHTML");

Это движение в правильном направлении, только assert мне выдал вот такое

java.lang.AssertionError: [<-------------- Assert Zone Name in form failed ----------->] 
Expecting:
 <"LOL25">
to be equal to:
 <"
              LOL25
            ">
ignoring case considerations

Имеет ли смысл просто при сравнении "убить" пробелы или есть более красивый способ?


  • 0

#5 Noksa

Noksa

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

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

Отправлено 05 августа 2018 - 11:21

Contains.
  • 0

#6 Vikonder

Vikonder

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

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

Отправлено 05 августа 2018 - 13:20

contains - это отлично в случае, если нужно проверить содержимое "disable" input form

 

мне же нужно прочитать это значение и сравнить его с expectedResult

 

иначе, получится что-то вроде actualResult = driver.findElement(...expectedResult), что как-то не комельфо


  • 0

#7 Alex

Alex

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

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

Отправлено 06 августа 2018 - 07:08

contains - это отлично в случае, если нужно проверить содержимое "disable" input form

 

мне же нужно прочитать это значение и сравнить его с expectedResult

 

иначе, получится что-то вроде actualResult = driver.findElement(...expectedResult), что как-то не комельфо

Я так понимаю вам рекомендовали не локатор поменять, а асерт. не assertEquals, а assertContains. Ну или можно просто удалять переносы и делать trim


  • 0

#8 BabyRoot

BabyRoot

    Специалист

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


Отправлено 07 августа 2018 - 10:11

В вашем случае, лучше у полученного стринга заменить все переносы строки на пусто:

.getAttribute("innerHTML").replace("\n","");

  • 0

#9 BadMF

BadMF

    Специалист

  • Members
  • PipPipPipPipPip
  • 809 сообщений
  • ФИО:Dmitry Petrov

Отправлено 07 августа 2018 - 11:12

вот ребята сейчас вам костылей насоветуютесли что, они вам тут последние пару предложений предлагают сделать следующее: getValue -> replaceValueToNeedValue -> PROFIT TEST SECCED =)

 

вы либо ожидайте в результате теста не просто ЛОЛ, а ЛОЛ с пробелами, либо говорите программистам, что у них баг.


  • 0

#10 Vikonder

Vikonder

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

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

Отправлено 07 августа 2018 - 16:53

Всем спасибо, так как FE использует кастомизацию, то всплывают такие штуки...

Решил проблему, используя trim()


  • 0

#11 Alex

Alex

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

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

Отправлено 08 августа 2018 - 06:03

вот ребята сейчас вам костылей насоветуютесли что, они вам тут последние пару предложений предлагают сделать следующее: getValue -> replaceValueToNeedValue -> PROFIT TEST SECCED =)

 

вы либо ожидайте в результате теста не просто ЛОЛ, а ЛОЛ с пробелами, либо говорите программистам, что у них баг.

А если с программистами поговорить нельзя? Проблема с переносами видна только на уровне Selenium и для пользователя все выглядит корректно. Наиболее вероятно, что разработчики либо вообще не будут этим заниматься, либо поставят самый низкий приоритет. Никто ведь не предлагает делать нечто этакое. Речь идет лишь об удалении доп. пробелов и переносов.


  • 1


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




Темы с аналогичным тегами form, selenium, input, read, disable

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

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

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