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

Selenium IDE 3: стартовый уровень
онлайн, начало 19 апреля
Школа для начинающих тестировщиков
онлайн, начало 22 апреля
Тестирование REST API
онлайн, начало 22 апреля
Тестирование юзабилити (usability)
онлайн, начало 24 апреля
Фотография

Не могу получить данные из инпута через getText();

protractor js e2e

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

#1 Markodius

Markodius

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

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

Отправлено 13 Апрель 2019 - 11:40

Суть проблемы в том. 
На странице есть поле для ввода названия интрумента и его параметров. Мне по тесту необходимо:
1) Ввести имя и его параметры.
2) Перейти на саму страницу результатов
3) На страницу результатов нажать на кнопку "Повторить с такими же параметрами"
4) После чего я обратно возвращаюсь на страницу для ввода имени и выбора параматров и поле имя и все параметры предзаполнены уже предыдущими.
5) Мне нужно убедится что все эти поля предзаполнились коретными данными.
Вот только возникла проблема я не могу никак вытянуть значение которое находится в инпуте так как в HTML оно не передается.
Вот как реализован этот инпут
 


<div class="form__group success has-feedback">
 <input class="form__control white in-sidebar no-border-top border-bottom border-bottom--gray ng-dirty ng-valid-parse ng-touched ng-not-empty ng-valid ng-valid-required" name="backtestName" ng-model="$ctrl.model.BacktestParameters.Name" placeholder="New Backtest" required="">
<span class="fa fa-check form-control-feedback"></span>
</div>

А по факту в нем есть текст.

Но вытянуть его с помощью getText() не выходит. Только начинаю вникать в автоматизацию, строго не судите.
 

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


  • 0

#2 aleksey_p

aleksey_p

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

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

Отправлено 15 Апрель 2019 - 06:47

Писал на калькуляторе, а в чем ошибка у вас?

System.out.println(driver.findElement(By.name("backtestName")).getText());

Проверка

driver.findElement(By.name("backtestName")).getText().equals("Значениеполя");

  • 0

#3 checo

checo

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

  • Members
  • PipPipPipPip
  • 341 сообщений
  • Город:Н.Новгород

Отправлено 15 Апрель 2019 - 10:07

Скорее всего, нужен не getText(), а getValue().


  • 0

#4 Markodius

Markodius

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

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

Отправлено 16 Апрель 2019 - 07:25

 

Писал на калькуляторе, а в чем ошибка у вас?

System.out.println(driver.findElement(By.name("backtestName")).getText());

Проверка

driver.findElement(By.name("backtestName")).getText().equals("Значениеполя");

getText() не захватывает этот текст так как его нет в ДОМ дереве(.
 

AssertionError [ERR_ASSERTION]: 'autotest_backtest_2019.4.16-10:23:42771' == ''

  • 0

#5 Snap

Snap

    Специалист

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


Отправлено 18 Апрель 2019 - 07:59

В куске кода выше, нет ни текста, ни value у <input>. Поэтому очень сложно подсказать.


  • 0

http://starbugss.blogspot.ru - "Звездные баги", мой блог.


#6 checo

checo

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

  • Members
  • PipPipPipPip
  • 341 сообщений
  • Город:Н.Новгород

Отправлено 18 Апрель 2019 - 10:01

Забавно, в Python прекрасно работает вот это:

from selenium.webdriver import Chrome

d = Chrome()
d.get('http://software-testing.ru/forum/index.php?/topic/37942-ne-mogu-poluchit-dannye-iz-inputa-cherez-gettext/')
main_search = d.find_element_by_id('main_search')
main_search.send_keys('12345')
print('Value=' + main_search.get_property('value')) # Value=12345
d.quit()

А в Java реализии аналогичной команды в интерфейсе WebElement не нашел. Хотя до сих пор думал, что реализация на Java наиболее полная.

 

(Поправочка: get_attribute тоже работает. Это при том, что атрибут в DOM изначально не задан.)


Сообщение отредактировал checo: 18 Апрель 2019 - 10:04

  • 0

#7 Markodius

Markodius

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

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

Отправлено 19 Апрель 2019 - 10:40

В куске кода выше, нет ни текста, ни value у <input>. Поэтому очень сложно подсказать.

Вот поэтому и не могу придумать как оттуда текст вытягивать, раз он не попадает в ДОМ.


  • 0

#8 Markodius

Markodius

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

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

Отправлено 19 Апрель 2019 - 11:27

Всем спасибо. Немного гугления и ваших подсказок которые помогли покопать нужном направлении. И я нашел выход.
Данные вытянут ьполучается теперь можно закончить написание теста.

element(by.xpath(pageBacktestCreate.input.input_newBacktest)).getAttribute('value').then(function (value) {
            console.log("Name = ", value);
        });


  • 0


Программирование на С# для тестировщиков
онлайн
Автоматизатор мобильных приложений
онлайн
Selenium WebDriver: полное руководство
онлайн
Программирование на Python для тестировщиков
онлайн




Темы с аналогичным тегами protractor, js, e2e

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

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

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