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

Фотография

Item(" ") в TC


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

#1 riverhead

riverhead

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

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

Отправлено 06 октября 2011 - 10:09

Всем привет. У меня такой вопрос - можно ли каким-нибудь образом обойти использование "пронумерованных" айтемов на веб-страницах. Например, мне нужно вызвать клик по кнопке:
page.DIV.Item("DIV_131").Click().
Проблема в том, что переменная "DIV_131" иногда меняется и следовательно производится клик не по тому объекту.
С айтемами, у которых прописано название page.INPUT.Item("INPUT").SetText("qwerty"); таких проблем не возникает. Такие элементы он всегда находит.
Вообщем вопрос - как с этим бороться. Написал скрипт, запустил - все ок, пришел на след. день - все валится из-за того, что теперь у этого айтиема другой номер.
ps: Использую Tag модель для веб тестинга.
  • 0

#2 XXX

XXX

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

  • Members
  • PipPipPipPip
  • 284 сообщений
  • ФИО:Денис Викторович
  • Город:Санкт-Петербург


Отправлено 06 октября 2011 - 11:29

Всем привет. У меня такой вопрос - можно ли каким-нибудь образом обойти использование "пронумерованных" айтемов на веб-страницах. Например, мне нужно вызвать клик по кнопке:
page.DIV.Item("DIV_131").Click().
Проблема в том, что переменная "DIV_131" иногда меняется и следовательно производится клик не по тому объекту.
С айтемами, у которых прописано название page.INPUT.Item("INPUT").SetText("qwerty"); таких проблем не возникает. Такие элементы он всегда находит.
Вообщем вопрос - как с этим бороться. Написал скрипт, запустил - все ок, пришел на след. день - все валится из-за того, что теперь у этого айтиема другой номер.
ps: Использую Tag модель для веб тестинга.


а если попробовать
page.DIV.Item("*").Click().

  • 0

#3 Aliya

Aliya

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

  • Members
  • Pip
  • 3 сообщений
  • ФИО:Исхакова Алия
  • Город:Saratov

Отправлено 06 октября 2011 - 11:42


Всем привет. У меня такой вопрос - можно ли каким-нибудь образом обойти использование "пронумерованных" айтемов на веб-страницах. Например, мне нужно вызвать клик по кнопке:
page.DIV.Item("DIV_131").Click().
Проблема в том, что переменная "DIV_131" иногда меняется и следовательно производится клик не по тому объекту.
С айтемами, у которых прописано название page.INPUT.Item("INPUT").SetText("qwerty"); таких проблем не возникает. Такие элементы он всегда находит.
Вообщем вопрос - как с этим бороться. Написал скрипт, запустил - все ок, пришел на след. день - все валится из-за того, что теперь у этого айтиема другой номер.
ps: Использую Tag модель для веб тестинга.


а если попробовать
page.DIV.Item("*").Click().



это не сработает, если таких айтемов несколько,кликнет по первому найденному. А если использовать метод FindChild() по какому-нибудь еще уникальному свойству, результатом будет найденный объект от котого уже можно сделать Click(). Вот только, к сожалению, не знаю имеет ли значение модель (tag, dom, ...), с которой ведется работа
  • 0

#4 XXX

XXX

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

  • Members
  • PipPipPipPip
  • 284 сообщений
  • ФИО:Денис Викторович
  • Город:Санкт-Петербург


Отправлено 06 октября 2011 - 12:55

ну мы же не знаем несколько их там или один..если один, то это лучший вариант чем использовать findchild.
  • 0

#5 riverhead

riverhead

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

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

Отправлено 07 октября 2011 - 07:35

а если попробовать
page.DIV.Item("*").Click().

не - такой вариант не пойдет. на форме множество айтемов и следовательно TC не распознает нужный. Думаю покопаюсь с FindChild(). Что касается модели - пробовал разные, но в object Browser все равно у всех моделей присутствует нумерная привязка к айтемам. Но это по идее не вина ТС. Веб форма такая. Просто нужно постараться обойти эту загвоздку.
  • 0

#6 Kissmybass

Kissmybass

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

  • Members
  • PipPip
  • 98 сообщений


Отправлено 07 октября 2011 - 09:12

С этими Айтемами всегда головняк, прислушайтесь к совету ХХХ или используйте другой метод поиска
елементов на странице, например NativeWebObject.Find
  • 0

#7 riverhead

riverhead

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

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

Отправлено 10 октября 2011 - 14:52

Да - айтемы геморой. Решил проблему используя NativeWebObject.Find - правда злоупотреблять ими не стоит)
Реализация проста:

var page = Sys.Process("iexplore", 2).Page("*");
page.NativeWebObject.Find("namePropStr", "audio").Click();
  • 0


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

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