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

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

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

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

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

 

Чисто догадка: где-то надо вставить обращение к первому элементу в пачке результатов поиска.

Возможно, что-то вроде:

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

(но могу легко ошибиться в синтаксисе)

Такая запись не работает( 

Поищите в Object Browser чем эти кнопки отличаются (найдите уникальное свойство для первой кнопки) и ищите по этому уникальному свойству. В Вашем случае надо замапить первую кнопку и дать ей другой алиас.

Ну и я так понимаю вы используете NameMapping встроенный в TestComplete. Я сколько ни пробовал его использовать каждый раз приходилось отказываться от этого, но может мне просто не везло со стабильными тест проектами.

Элементы на странице лучше искать по уникальным ID или className, или еще каким-либо, а не по надписям на кнопке. Если же уникальных свойств нет, то можно найти родительский элемент( у которого есть какое-то уникальное свойство), а от него уже искать нужный элемент.

С момента поста год еще не прошел, так что отвечу :smile:

Проблема решается так:

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

FindAll возвращает массив всех найденных элементов. С помощью индекса ([1] в данном случае) мы обращаемся к нужной нам кнопке. Индекс нужно подобрать методом научного тыка.

Это самый простой способ решения проблемы, но лучше поискать другие свойства, более уникальные, как уже говорили выше. Но это не всегда возможно.