
Наличие информационного окна и действия с ним
#1
Отправлено 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. ....
#2
Отправлено 01 марта 2012 - 12:41
Поиск осуществляется в элементе типа ComboBox. Если нужное значение не найдено - появляется информационное окно с предупреждением...
Ищите сами, есть ли элемент в списке ComboBox. И если нет, тогда добавляйте кнопкой.
Ели конечно же Вы не тестируете как работает поиск.
#3
Отправлено 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) { ... }
#4
Отправлено 01 марта 2012 - 13:21
и если не существует то и получаете ошибку
#5
Отправлено 01 марта 2012 - 13:44
Все дело в том, что может вылезти какое-нибудь другое окошко, у которого только это Property("Text","Строка не найдена!") и будет отличаться...получается, что во-первых нужно проверить появилось ли Sys.Process("PRv8").Popup("*"), если появилось то какое у него Property("Text"..., а если не появилось, то соответственно ничего больше проверять не нужно
Доброго времени суток!
В окне приложения имеется стандартная строка поиска с кнопкой "Искать". Поиск осуществляется в элементе типа 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) { ... }
#6
Отправлено 01 марта 2012 - 13:47
Суть поста не в том, как провести поиск, а в том, как правильно описать, что произошло в результате поиска
Поиск осуществляется в элементе типа ComboBox. Если нужное значение не найдено - появляется информационное окно с предупреждением...
Ищите сами, есть ли элемент в списке ComboBox. И если нет, тогда добавляйте кнопкой.
Ели конечно же Вы не тестируете как работает поиск.
#7
Отправлено 01 марта 2012 - 14:10
В условии о существовании попап-окна прописать условие на текст попап-окна с нужными действиями для каждого случая
#8
Отправлено 01 марта 2012 - 14:11
у вас не указывается параметр Timeout
#9
Отправлено 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(); // - окно приложения }
#10
Отправлено 01 марта 2012 - 14:43
Быстрее выяснить будет ли ошибка (поискав элемент в комбобоксе) и уже тогда ждать ошибку методом Wait. ИМХО.
#11
Отправлено 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(); // - окно приложения }
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных