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

Фотография

Обращение к объекту label на форме


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

#1 Rezet

Rezet

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

  • Members
  • Pip
  • 12 сообщений
  • ФИО:Глеб

Отправлено 21 апреля 2011 - 07:30

Всем привет.
Помогите плиз новичку с, наверно, простым, но тупиковым для меня вопросом.

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

Т.е. нужно обратиться как-то к тексту на форме и проверить что там есть "WordPad has finished searching the document".
Вот так вроде только заголовок читается:

aqObject.CompareProperty(dlgWP.WndCaption , cmpEqual , "TEXT", true);

Подскажите плиз как проверить-то эту строку. На скрине есть инфа о ней через Use Finder Tool.
  • 0

#2 XXX

XXX

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

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


Отправлено 21 апреля 2011 - 07:41

Всем привет.
Помогите плиз новичку с, наверно, простым, но тупиковым для меня вопросом.

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

Т.е. нужно обратиться как-то к тексту на форме и проверить что там есть "WordPad has finished searching the document".
Вот так вроде только заголовок читается:

aqObject.CompareProperty(dlgWP.WndCaption , cmpEqual , "TEXT", true);

Подскажите плиз как проверить-то эту строку. На скрине есть инфа о ней через Use Finder Tool.



if (w.wndCaption == "WordPad has finished searching the document")
Log.Message("Надпись появилась = )")
else
Log.Warning("Не появилась")

где w - FullName вашего окна с этим сообщением ,тобишь dlgWP
  • 0

#3 Rezet

Rezet

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

  • Members
  • Pip
  • 12 сообщений
  • ФИО:Глеб

Отправлено 21 апреля 2011 - 08:07

XXX, немного не то что я хотел. так получается что этого текста там нету, но он то есть!
так вот мне и нужно как-то сделать проверку и убедится что он там есть!
  • 0

#4 XXX

XXX

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

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


Отправлено 21 апреля 2011 - 08:17

XXX, немного не то что я хотел. так получается что этого текста там нету, но он то есть!
так вот мне и нужно как-то сделать проверку и убедится что он там есть!


как это его там нет?
на скрине же в Object Spy у wndCaption стоит значение - этот текст..
или я опять не понял чтото?)
  • 0

#5 Rezet

Rezet

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

  • Members
  • Pip
  • 12 сообщений
  • ФИО:Глеб

Отправлено 21 апреля 2011 - 08:25

там получается так: текст этот есть, и это нужно доказать через ТС.

Но ни мой вариант, ни ваш этого не доказывает - ТС выдает варнинг, что такого текста нету.

Проверив, получилось что wndCaption определяет лишь заголовок окна ("WordPad").
  • 0

#6 XXX

XXX

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

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


Отправлено 21 апреля 2011 - 09:02

там получается так: текст этот есть, и это нужно доказать через ТС.

Но ни мой вариант, ни ваш этого не доказывает - ТС выдает варнинг, что такого текста нету.

Проверив, получилось что wndCaption определяет лишь заголовок окна ("WordPad").



Значит вы дали скрин на котором свойства не самого окна с этим сообщением, а того самого лейбла..
Сделайте так
if (Sys.Process("wordpad").Find("wndCaption","WordPad has finished searching the document",5).Exists)
        Log.Message("Надпись наконецто нашлась...");

  • 0

#7 Rezet

Rezet

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

  • Members
  • Pip
  • 12 сообщений
  • ФИО:Глеб

Отправлено 21 апреля 2011 - 09:25

опять нет(( не находит оно такого элемента...

вот скрин инфы о всем месаджбоксе:

Изображение
  • 0

#8 XXX

XXX

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

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


Отправлено 21 апреля 2011 - 09:50

опять нет(( не находит оно такого элемента...

вот скрин инфы о всем месаджбоксе:

Изображение



В окошке Object Spy , когда выберете ваше диалоговое окно , нажмите на кнопку Highlight Object in The Object Tree
И киньте сюда скрин дерева из Object Browser

а вообще я у себя спокойно определяю тот самый лейбл с нужным вами текстом в вордпаде..и скрипт у меня который я вам дал работает.
  • 0

#9 Rezet

Rezet

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

  • Members
  • Pip
  • 12 сообщений
  • ФИО:Глеб

Отправлено 21 апреля 2011 - 13:58

Странно, но у меня не работает этот метод((

Вот скрин:
Изображение
  • 0

#10 XXX

XXX

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

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


Отправлено 21 апреля 2011 - 16:13

Странно, но у меня не работает этот метод((

Вот скрин:
Изображение



так вот же в браузере у вас отображается дочерний элемент вашего диалогового окна который вам и нужен!!
Window("Static","WordPad has finished searching the document.",2)

И сразу стало видно что я просто пропустил точку в конце предложения

тобишь пробуйте
if (Sys.Process("wordpad").Find("wndCaption","WordPad has finished searching the document.",2).Exists)
        Log.Message("Надпись наконецто нашлась...");

  • 0

#11 Rezet

Rezet

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

  • Members
  • Pip
  • 12 сообщений
  • ФИО:Глеб

Отправлено 21 апреля 2011 - 16:25

да, точно, так оно работает, я тоже точку пропустил, думая что она не влияет...

но это получился частный подход, а как-нибудь можно реализовать это более универсально?

ЗЫ: спасибо!
  • 0

#12 XXX

XXX

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

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


Отправлено 21 апреля 2011 - 17:23

да, точно, так оно работает, я тоже точку пропустил, думая что она не влияет...

но это получился частный подход, а как-нибудь можно реализовать это более универсально?

ЗЫ: спасибо!




Как это частный?помоему наоборот метод Find() более универсальный...чем использовать полный путь к объекту ..
Или что вы имели ввиду?уточните плз
  • 0

#13 Rezet

Rezet

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

  • Members
  • Pip
  • 12 сообщений
  • ФИО:Глеб

Отправлено 21 апреля 2011 - 18:05

я имею ввиду что если один из трех параметров искомого объекта поменяется, то оно по идее не найдет. ну т.е. получается что ищем элемент по всем параметрам его, а не проверяем есть ли в имеющемся искомая строка...

ну да ладно, главное что задача решена. еще раз спасибо!
  • 0


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

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