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

Программирование на Python для тестировщиков
онлайн, начало 17августа
SQL для тестировщиков
онлайн, начало 20 августа
Программирование на C# для тестировщиков
онлайн, начало 24 августа
Тестирование производительности (JMeter)
онлайн, начало 24 августа
Фотография

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

form selenium input read disable

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

#1 Vikonder

Vikonder

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

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

Отправлено 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
  • 560 сообщений


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

.getAttribute("innerHTML");


  • 0

#3 TatyanaV

TatyanaV

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

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


Отправлено 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
  • 19 сообщений

Отправлено 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
  • Pip
  • 66 сообщений
  • ФИО:Александр

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

Contains.
  • 0

#6 Vikonder

Vikonder

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

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

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

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

 

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

 

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


  • 0

#7 Alex

Alex

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

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

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

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

 

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

 

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

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


  • 0

#8 BabyRoot

BabyRoot

    Специалист

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


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

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

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

  • 0

#9 BadMF

BadMF

    Специалист

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

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

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

 

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


  • 0

#10 Vikonder

Vikonder

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

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

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

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

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


  • 0

#11 Alex

Alex

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

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

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

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

 

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

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


  • 1


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




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

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

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

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