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

Фотография

Наличие информационного окна и действия с ним


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

#1 mskffo

mskffo

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

  • Members
  • Pip
  • 63 сообщений
  • ФИО:Мария
  • Город:Москва

Отправлено 01 марта 2012 - 11:37

Доброго времени суток!
В окне приложения имеется стандартная строка поиска с кнопкой "Искать". Поиск осуществляется в элементе типа ComboBox. Если нужное значение не найдено - появляется информационное окно с предупреждением, которое нужно закрыть и далее будет выполняться добавление новой записи. Если нужное значение найдено - информ.окно не появляется, в этом случае окно приложения просто закрывается.

Не могу разобраться, как лучше обработать данную ситуацию. Код, приведенный ниже, успешно выполняется только в том случае, если значение, введенное в строке поиска, не найдено и окно с предупреждением появилось. А вот если значение найдено, ТС выдает ошибку на первой же строке

1. if (!(Sys.Process("PRv8").Popup("*").Exists) && !(Sys.Process("PRv8").Popup("*").WaitProperty("Text","Строка не найдена!").Exists))
2. {
3. Sys.Process("PRv8").Window("Win4").Close(); // - окно приложения
4. Log.Message("Нужное значение найдено. Закрываем форму");
5. }
6. else {
7. Log.Message("Нужное значение не найдено.");
8. Sys.Process("PRv8").Popup("*").Close(); // - информ. окно
9. ....
  • 0

#2 anagramma

anagramma

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

  • Members
  • PipPip
  • 87 сообщений
  • Город:Moskow

Отправлено 01 марта 2012 - 12:41

Поиск осуществляется в элементе типа ComboBox. Если нужное значение не найдено - появляется информационное окно с предупреждением...


Ищите сами, есть ли элемент в списке ComboBox. И если нет, тогда добавляйте кнопкой.

Ели конечно же Вы не тестируете как работает поиск.
  • 0

#3 XXX

XXX

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

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


Отправлено 01 марта 2012 - 13:18

Доброго времени суток!
В окне приложения имеется стандартная строка поиска с кнопкой "Искать". Поиск осуществляется в элементе типа ComboBox. Если нужное значение не найдено - появляется информационное окно с предупреждением, которое нужно закрыть и далее будет выполняться добавление новой записи. Если нужное значение найдено - информ.окно не появляется, в этом случае окно приложения просто закрывается.

Не могу разобраться, как лучше обработать данную ситуацию. Код, приведенный ниже, успешно выполняется только в том случае, если значение, введенное в строке поиска, не найдено и окно с предупреждением появилось. А вот если значение найдено, ТС выдает ошибку на первой же строке

1. if (!(Sys.Process("PRv8").Popup("*").Exists) && !(Sys.Process("PRv8").Popup("*").WaitProperty("Text","Строка не найдена!").Exists))
2. {
3. Sys.Process("PRv8").Window("Win4").Close(); // - окно приложения
4. Log.Message("Нужное значение найдено. Закрываем форму");
5. }
6. else {
7. Log.Message("Нужное значение не найдено.");
8. Sys.Process("PRv8").Popup("*").Close(); // - информ. окно
9. ....




а не так ли нужно?
if (!Sys.Process("PRv8").WaitPopup("*",10000).Exists) 
{
    ...
}

  • 0

#4 XXX

XXX

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

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


Отправлено 01 марта 2012 - 13:21

Этим Sys.Process("PRv8").Popup("*").WaitProperty("Text","Строка не найдена!").Exists вы проверяете свойство объекта Sys.Process("PRv8").Popup("*") , который не факт что существует..
и если не существует то и получаете ошибку
  • 0

#5 mskffo

mskffo

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

  • Members
  • Pip
  • 63 сообщений
  • ФИО:Мария
  • Город:Москва

Отправлено 01 марта 2012 - 13:44


Доброго времени суток!
В окне приложения имеется стандартная строка поиска с кнопкой "Искать". Поиск осуществляется в элементе типа ComboBox. Если нужное значение не найдено - появляется информационное окно с предупреждением, которое нужно закрыть и далее будет выполняться добавление новой записи. Если нужное значение найдено - информ.окно не появляется, в этом случае окно приложения просто закрывается.

Не могу разобраться, как лучше обработать данную ситуацию. Код, приведенный ниже, успешно выполняется только в том случае, если значение, введенное в строке поиска, не найдено и окно с предупреждением появилось. А вот если значение найдено, ТС выдает ошибку на первой же строке

1. if (!(Sys.Process("PRv8").Popup("*").Exists) && !(Sys.Process("PRv8").Popup("*").WaitProperty("Text","Строка не найдена!").Exists))
2. {
3. Sys.Process("PRv8").Window("Win4").Close(); // - окно приложения
4. Log.Message("Нужное значение найдено. Закрываем форму");
5. }
6. else {
7. Log.Message("Нужное значение не найдено.");
8. Sys.Process("PRv8").Popup("*").Close(); // - информ. окно
9. ....




а не так ли нужно?
if (!Sys.Process("PRv8").WaitPopup("*",10000).Exists) 
{
    ...
}

Все дело в том, что может вылезти какое-нибудь другое окошко, у которого только это Property("Text","Строка не найдена!") и будет отличаться...получается, что во-первых нужно проверить появилось ли Sys.Process("PRv8").Popup("*"), если появилось то какое у него Property("Text"..., а если не появилось, то соответственно ничего больше проверять не нужно
  • 0

#6 mskffo

mskffo

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

  • Members
  • Pip
  • 63 сообщений
  • ФИО:Мария
  • Город:Москва

Отправлено 01 марта 2012 - 13:47


Поиск осуществляется в элементе типа ComboBox. Если нужное значение не найдено - появляется информационное окно с предупреждением...


Ищите сами, есть ли элемент в списке ComboBox. И если нет, тогда добавляйте кнопкой.

Ели конечно же Вы не тестируете как работает поиск.

Суть поста не в том, как провести поиск, а в том, как правильно описать, что произошло в результате поиска
  • 0

#7 XXX

XXX

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

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


Отправлено 01 марта 2012 - 14:10

Ну никто не отменял вложенные условия..
В условии о существовании попап-окна прописать условие на текст попап-окна с нужными действиями для каждого случая
  • 0

#8 XXX

XXX

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

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


Отправлено 01 марта 2012 - 14:11

+ TestObj.WaitProperty(PropertyName, PropertyValue, Timeout)

у вас не указывается параметр Timeout
  • 0

#9 XXX

XXX

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

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


Отправлено 01 марта 2012 - 14:26

Доброго времени суток!
В окне приложения имеется стандартная строка поиска с кнопкой "Искать". Поиск осуществляется в элементе типа ComboBox. Если нужное значение не найдено - появляется информационное окно с предупреждением, которое нужно закрыть и далее будет выполняться добавление новой записи. Если нужное значение найдено - информ.окно не появляется, в этом случае окно приложения просто закрывается.

Не могу разобраться, как лучше обработать данную ситуацию. Код, приведенный ниже, успешно выполняется только в том случае, если значение, введенное в строке поиска, не найдено и окно с предупреждением появилось. А вот если значение найдено, ТС выдает ошибку на первой же строке

1. if (!(Sys.Process("PRv8").Popup("*").Exists) && !(Sys.Process("PRv8").Popup("*").WaitProperty("Text","Строка не найдена!").Exists))
2. {
3. Sys.Process("PRv8").Window("Win4").Close(); // - окно приложения
4. Log.Message("Нужное значение найдено. Закрываем форму");
5. }
6. else {
7. Log.Message("Нужное значение не найдено.");
8. Sys.Process("PRv8").Popup("*").Close(); // - информ. окно
9. ....




И вообще у вас написано "Если нужное значение найдено - информ.окно не появляется"
это равносильно следующему условию
if (!Sys.Process("PRv8").WaitPopup("*",10000).Exists)
{

}

а в условии else уже описывать тексты

else
{
  if (Sys.Process("PRv8").Popup("*").WaitProperty("Text","Строка не найдена!",100).Exists)
      Log.Message("Нужное значение найдено. Закрываем форму");
  else
      Log.Message("Lalala");

  Sys.Process("PRv8").Window("Win4").Close(); // - окно приложения 
}

  • 0

#10 anagramma

anagramma

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

  • Members
  • PipPip
  • 87 сообщений
  • Город:Moskow

Отправлено 01 марта 2012 - 14:43

Ну, с точки зрения времени выполнения, просто будет долго работать, если каждый раз будет ждать окна с ошибкой, а ошибок не будет.
Быстрее выяснить будет ли ошибка (поискав элемент в комбобоксе) и уже тогда ждать ошибку методом Wait. ИМХО.
  • 0

#11 mskffo

mskffo

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

  • Members
  • Pip
  • 63 сообщений
  • ФИО:Мария
  • Город:Москва

Отправлено 02 марта 2012 - 05:13


Доброго времени суток!
В окне приложения имеется стандартная строка поиска с кнопкой "Искать". Поиск осуществляется в элементе типа ComboBox. Если нужное значение не найдено - появляется информационное окно с предупреждением, которое нужно закрыть и далее будет выполняться добавление новой записи. Если нужное значение найдено - информ.окно не появляется, в этом случае окно приложения просто закрывается.

Не могу разобраться, как лучше обработать данную ситуацию. Код, приведенный ниже, успешно выполняется только в том случае, если значение, введенное в строке поиска, не найдено и окно с предупреждением появилось. А вот если значение найдено, ТС выдает ошибку на первой же строке

1. if (!(Sys.Process("PRv8").Popup("*").Exists) && !(Sys.Process("PRv8").Popup("*").WaitProperty("Text","Строка не найдена!").Exists))
2. {
3. Sys.Process("PRv8").Window("Win4").Close(); // - окно приложения
4. Log.Message("Нужное значение найдено. Закрываем форму");
5. }
6. else {
7. Log.Message("Нужное значение не найдено.");
8. Sys.Process("PRv8").Popup("*").Close(); // - информ. окно
9. ....




И вообще у вас написано "Если нужное значение найдено - информ.окно не появляется"
это равносильно следующему условию
if (!Sys.Process("PRv8").WaitPopup("*",10000).Exists)
{

}

а в условии else уже описывать тексты

else
{
  if (Sys.Process("PRv8").Popup("*").WaitProperty("Text","Строка не найдена!",100).Exists)
      Log.Message("Нужное значение найдено. Закрываем форму");
  else
      Log.Message("Lalala");

  Sys.Process("PRv8").Window("Win4").Close(); // - окно приложения 
}

Спасибо. В итоге, вчера я пришла к такому же решению.
  • 0


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

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