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

Фотография

TestComlete обращение к кнопке


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

#1 pbezpal

pbezpal

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

  • Members
  • PipPip
  • 79 сообщений
  • ФИО:Безпалько Павел

Отправлено 21 декабря 2012 - 06:49

Всем привет! Тестирую web приложение, на странице есть две кнопки Добавить, если обращаться к нопке по по поиску

Aliases["iexplorer"]["page"]["BUTTON"]["Find"]("value", "Добавить")["Click"]();

То будет нажата последняя, т.е. вторая кнопка!

Как сделать, чтобы нажималась первая кнопка Добавить?
  • 0

#2 XXX

XXX

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

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


Отправлено 21 декабря 2012 - 06:55

Всем привет! Тестирую web приложение, на странице есть две кнопки Добавить, если обращаться к нопке по по поиску

Aliases["iexplorer"]["page"]["BUTTON"]["Find"]("value", "Добавить")["Click"]();

То будет нажата последняя, т.е. вторая кнопка!

Как сделать, чтобы нажималась первая кнопка Добавить?


так посмотрите в Object Spy свойства кнопок и найдите то по чему можно идентифицировать первую..может быть по индексу, по айди.
а можно например метод Find запускать не непосредственно к объекту страницы, а к такому где как раз кнопка ваша одна.
  • 0

#3 Genka

Genka

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 328 сообщений
  • ФИО:Геннадий Алпаев
  • Город:Украина, Днепр


Отправлено 21 декабря 2012 - 07:58

Денис прав, вам нужно примаппить эту кнопку в NameMapping'e используя уникальный набор свойств.
  • 0

TestComplete для начинающих (видеозаписи курса)

Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)

Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest


#4 idunin

idunin

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

  • Members
  • PipPip
  • 116 сообщений
  • ФИО:Илья Владимирович
  • Город:Москва


Отправлено 21 декабря 2012 - 09:12

А если программистам взбредет в голову изменить имена обоих кнопок? Было "Добавить" стало "Добавить в корзину" и т.п., то ваши тесты разом "отъедут" или смнится локализация продукта. Ищите другой локатор к которому привязаться. Вам сообщением выше правильно советовали. Нужен не только уникальный локатор, но и тот который не подвержен частым изменениям.
  • 0

#5 Genka

Genka

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 328 сообщений
  • ФИО:Геннадий Алпаев
  • Город:Украина, Днепр


Отправлено 21 декабря 2012 - 09:18

А если программистам взбредет в голову изменить имена обоих кнопок? Было "Добавить" стало "Добавить в корзину" и т.п., то ваши тесты разом "отъедут" или смнится локализация продукта. Ищите другой локатор к которому привязаться. Вам сообщением выше правильно советовали. Нужен не только уникальный локатор, но и тот который не подвержен частым изменениям.


Кстати, тут есть еще один важный момент с этими названиями.

Допустим, у кнопки есть постоянный ID, который не меняется ни при каких условиях (ну, допустим так). Стоит ли привязываться к нему? Я бы не стал и предпочел бы привязаться к Caption'у.
Потому что программисты не могут просто "взять и поменять", если им взбрело в голову, подобные изменения должны быть запросом от заказчика. И вот эта самая привязка к Caption'у - это неявная проверка того же текста кнопки.
  • 0

TestComplete для начинающих (видеозаписи курса)

Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)

Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest


#6 XXX

XXX

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

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


Отправлено 21 декабря 2012 - 09:23

А если программистам взбредет в голову изменить имена обоих кнопок? Было "Добавить" стало "Добавить в корзину" и т.п., то ваши тесты разом "отъедут" или смнится локализация продукта. Ищите другой локатор к которому привязаться. Вам сообщением выше правильно советовали. Нужен не только уникальный локатор, но и тот который не подвержен частым изменениям.



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

да и + не так плохо знать когда чтото меняется в продукте, как например изменение названий..
  • 0

#7 XXX

XXX

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

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


Отправлено 21 декабря 2012 - 09:28

представь что была кнопка Добавить а ее переименовали в Удалить..причем функционал на нее остался прежний по ошибке..и твои тесты с идентификатором по id покажут что все отл.а на самом деле серьезная ошибка
както так )
  • 0

#8 pbezpal

pbezpal

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

  • Members
  • PipPip
  • 79 сообщений
  • ФИО:Безпалько Павел

Отправлено 21 декабря 2012 - 09:55

А как тогда в диве найти и обратиться к кнопке?

див

Aliases["iexplorer"]["page"]["DIV"]["DIV_10"]...;

читал про метод child, но с английским у меня не очень, поэтому пока не очень понял этот ли метод поможет мне
  • 0

#9 pbezpal

pbezpal

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

  • Members
  • PipPip
  • 79 сообщений
  • ФИО:Безпалько Павел

Отправлено 21 декабря 2012 - 09:59

Кнопку не переименуют, но у нее постоянно меняется id, т.к. добавляется новая инфа и соотвественно по id не очень удобно к ней обращаться
  • 0

#10 XXX

XXX

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

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


Отправлено 21 декабря 2012 - 10:11

а киньте сюда MappedName или FullName обоих кнопок
  • 0

#11 pbezpal

pbezpal

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

  • Members
  • PipPip
  • 79 сообщений
  • ФИО:Безпалько Павел

Отправлено 21 декабря 2012 - 11:00

В MappedName у кнопок ничего нет, поэтому кидаю FullName

Кнопка 1
Sys["Process"]("iexplore", 2)["Page"]("http://172.19.2.207/cgi-bin/set-basic-sip-route.cgi")["BUTTON"]["Item"]("BUTTON_5")
Кнопка 2
Sys["Process"]("iexplore", 2)["Page"]("http://172.19.2.207/cgi-bin/set-basic-sip-route.cgi")["BUTTON"]["Item"]("BUTTON_11")

  • 0

#12 XXX

XXX

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

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


Отправлено 21 декабря 2012 - 11:17

В MappedName у кнопок ничего нет, поэтому кидаю FullName

Кнопка 1

Sys["Process"]("iexplore", 2)["Page"]("http://172.19.2.207/cgi-bin/set-basic-sip-route.cgi")["BUTTON"]["Item"]("BUTTON_5")
Кнопка 2
Sys["Process"]("iexplore", 2)["Page"]("http://172.19.2.207/cgi-bin/set-basic-sip-route.cgi")["BUTTON"]["Item"]("BUTTON_11")



вообще работал только под JScript и могу в чемто ошибиться..но вроде должно быть както так

var page = Sys["Process"]("iexplore")["Page"]("*");
var btn1 = page["Find"]("Name", '["Item"]("BUTTON_5")', 2);
var btn2 = page["Find"]("Name", '["Item"]("BUTTON_11")', 2);
  • 0

#13 pbezpal

pbezpal

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

  • Members
  • PipPip
  • 79 сообщений
  • ФИО:Безпалько Павел

Отправлено 21 декабря 2012 - 11:19

дело в том, что могут меняться Name, поэтому искать по имени здесь не очень правильно!
Т.е. на странице могут добавляться, удалять кнопки при определенных действиях!
  • 0

#14 XXX

XXX

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

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


Отправлено 21 декабря 2012 - 11:22

дело в том, что могут меняться Name, поэтому искать по имени здесь не очень правильно!



ну надо тогда разбираться , смотреть в свойствах, в чем уникальность кнопок и что не менеятся.
кроме fullname который как вы говорите меняется больше никакой инфы для нас нет.как можем помочь?)
может кинете адрес вашей странички с кнопками?
  • 0

#15 pbezpal

pbezpal

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

  • Members
  • PipPip
  • 79 сообщений
  • ФИО:Безпалько Павел

Отправлено 21 декабря 2012 - 11:29

К сожалению не получиться! это локальное приложение и открыть к нему доступ не получиться! Так что извините, но спасибо) думал можно как то по другому, но придется делать по своему)))
  • 0

#16 Rebz

Rebz

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

  • Members
  • PipPipPipPip
  • 471 сообщений


Отправлено 21 декабря 2012 - 11:47

К сожалению не получиться! это локальное приложение и открыть к нему доступ не получиться! Так что извините, но спасибо) думал можно как то по другому, но придется делать по своему)))

А попросить разработчиков чтобы они к каждой кнопке добавляли какое-то уникальное свойство? вместо button_2,3,N было button_add, button_add_group к примеру.

Или вариант - если у тебя 9-ая версия ТестКомлита, юзать XPath, т.е. EvaluateXPath или FindChildByXPath (это что касается div)

Если у тебя FF, то есть плагин Firebug & Firepath , последний автоматом генерит регулярку Xpath, удобно.
  • 2

#17 pbezpal

pbezpal

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

  • Members
  • PipPip
  • 79 сообщений
  • ФИО:Безпалько Павел

Отправлено 24 декабря 2012 - 08:43

А попросить разработчиков чтобы они к каждой кнопке добавляли какое-то уникальное свойство? вместо button_2,3,N было button_add, button_add_group к примеру.

Или вариант - если у тебя 9-ая версия ТестКомлита, юзать XPath, т.е. EvaluateXPath или FindChildByXPath (это что касается div)

Если у тебя FF, то есть плагин Firebug & Firepath , последний автоматом генерит регулярку Xpath, удобно.


Хорошая идея по поводу наименования кнопок! Спасибо)))
  • 0


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

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