Overlapping window. Делфи программа, окно и всплывающий календарь
#1
Отправлено 30 июня 2015 - 15:26
#2
Отправлено 01 июля 2015 - 09:11
Предположу, что там сэндвич, и TestComplete верно выдает ошибку.
Сделайте без мапинга и без рекордера и проверьте объекты в обджектбраузере.
"Если ты хороший плотник и делаешь красивую тумбочку, ты не будешь прибивать сзади фанеру, даже несмотря на то, что задняя часть повернута к стене, и никто ее не видит. Ты будешь хорошо спать ночью, только если тебе удалось воплотить в своем произведении эстетическую красоту и качество." © Стив Джобс
#3
Отправлено 01 июля 2015 - 10:54
Сергей, если под сэндвичем понимать вложенность, то в календаре, вложений уже нет.
И ведь работает такой же календарь на этой же форме чуть выше (на картинке календарь-активность2.jpg) кнопочка "15", где бирюзовый фон.
Насчет "маппинга" и "рекордера" - не совсем понимаю, что имеется ввиду - удалить компонент NameMapping в проекте или очистить его?
"Без рекордера" - в смысле, просто пройти действия без записи теста?
Если так, то прохожу - все в порядке. А насчет маппинга - удалять боюсь, вдруг потом записанные тесты работать перестанут. Просветите, пожалуйста, как поступить.
Пока с календарем проблему решил так - просто с клавиатуры ввожу дату. Всплывающим окном не пользуюсь, так что это решает проблему путем обхода.
#4
Отправлено 01 июля 2015 - 11:56
1. Компонент Мапинг удалять не надо.
2. Руками пропишите объект, к-й из обжектбраузера
3. По приведенном коду предполагаю, что вы все таки пользовались рекордером, а лучше руками
4. Сомневаюсь, что в календаре вложений нет. Чтобы появились, зайдите в настройки проекта и попробуйте прописать в в опенаппликешн объект календаря в один из трех (msaa, text, ui). Даже если рисованный полностью календарь (в чем опять сомневаюсь, чтобы в Дельфи рисовали готовые компоненты), текст-рекогнишн должен помочь где текст.
5. попросите программистов, чтобы собрали сборку с определенными опциями (какие точно можно посмотреть в онлайн справке, там есть отдельно), упростит сильно жизнь
6. если ничего не помогло, можно посмотреть, каким объектом что перекрывается, в тесткомплите есть функция определения видимого объекта по координатам и посмотреть в дебагере, какой же все таки там реально объект
7. спецом на последнем пункте - возможно, самое простое решение;) так не любимы многими использовать паттер сон, в простонароде - поставьте задержку в сек, переходные процессы, знаете ли. тесткомплит их очень не любит, точнее десктопные приложения, если до этого занимались веб-тестированием, привыкайте.
"Если ты хороший плотник и делаешь красивую тумбочку, ты не будешь прибивать сзади фанеру, даже несмотря на то, что задняя часть повернута к стене, и никто ее не видит. Ты будешь хорошо спать ночью, только если тебе удалось воплотить в своем произведении эстетическую красоту и качество." © Стив Джобс
#5
Отправлено 01 июля 2015 - 12:46
Сергей, Спасибо, второй пункт сразу помог. Оказывается в ObjectBrowser-е был объект для второго календаря с "имя"+"1". Как только прописал в тесте в соответствии с ObjectBrowser - все заработало. Еще раз благодарю.
#6
Отправлено 09 июля 2015 - 13:26
Сергей, по пункту 6: где функция определения видимого объекта по координатам находится и как ей воспользоваться?
Сергей, снова та же проблема но ракурс другой. Два календаря, один отрабатывает открытие и выбор даты нормально. Второй открывается, после чего TestComplete пишет что окно ждет активации, потом пишет про "перекрытие окна", как и раньше. В Object Browsere два окна TLocCalendear, в то время когда одно окно активно в графе MappedName указан "маршрут имен", а в неактивном пусто. Когда активность окон меняется, то аналогично меняется на "маршрут имен" и пусто - графа MappedName для нового активного окна. Вообщем теперь оба окна имеют одинаковый путь MappedName, только когда окно активно путь прописан для этого окна, и при вызове следующего второго календаря происходит ожидание активности окна, а потом пишет overlapping window. Предполагаю, что теперь это связано с одинаковым именем в Object Browser для окон в MappedName.
Подскажите, как решить эту проблему?
P.S. После переустановки разрешения экрана, пришлось переписать часть тестов. Подскажете, как можно избежать подобных трудностей. Может есть какой-то инструмент для переделки кода под новое разрешение?
#7
Отправлено 16 июля 2015 - 15:03
Проблема уже не актуальна. Видимо причина была в одинаковом имени объектов. Новая сборка тестируемого приложения решила проблему - в ней объекты календаря с разными именами.
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных