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

Фотография

Как вытащить данные из строки вывода калькулятора


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

#1 kohcta

kohcta

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

  • Members
  • Pip
  • 6 сообщений
  • ФИО:Ингумат Дебоширов

Отправлено 17 ноября 2010 - 13:54

Доброго дня всем.
Соственно вопрос: как вытащить данные из строки вывода обычного виндовского калькулятока? В object browser кроме button-ов и одного static и edit елемента, у которых в Methods ничего подхощего нема, нет. Конечно, крайне вероятен вариант, что я очень сильно туплю.
  • 0

#2 VitalyD

VitalyD

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

  • Members
  • PipPipPipPip
  • 285 сообщений
  • Город:Санкт-Петербург

Отправлено 17 ноября 2010 - 14:04

Доброго дня всем.
Соственно вопрос: как вытащить данные из строки вывода обычного виндовского калькулятока? В object browser кроме button-ов и одного static и edit елемента, у которых в Methods ничего подхощего нема, нет. Конечно, крайне вероятен вариант, что я очень сильно туплю.


Да, каклькулятор он такой.
Один из статиков как раз и содержит в качестве свойства WndCaption - значение калькулятора.

В Win7 путь к нужному статику такой:
Sys.Process("calc").Window("CalcFrame", "Калькулятор", 1).Window("CalcFrame", "", 1).Window("#32770", "", 2).Window("Static", "6652", 3)
(6652 - и есть значение строки вывода калькулятора).
Т.е. что бы получить это значение нужно выполнить строку:
Sys.Process("calc").Window("CalcFrame", "Калькулятор", 1).Window("CalcFrame", "", 1).Window("#32770", "", 2).Window("Static", "*", 3).WndCaption

  • 0

#3 NightSpirit

NightSpirit

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

  • Members
  • Pip
  • 29 сообщений


Отправлено 17 ноября 2010 - 15:24

windows xp sp3, TC 7.2ent:
Проперти wText объекта Sys.Process("calc").Window("SciCalc", "Calculator", 1).Window("Edit", "", 1) содержит необходимое значение.

Для корректной работы объект надо обновлять Refresh'ем после завершённой операции, а значение преобразовывать из текстового в числовой вид.
  • 0

#4 kohcta

kohcta

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

  • Members
  • Pip
  • 6 сообщений
  • ФИО:Ингумат Дебоширов

Отправлено 17 ноября 2010 - 18:23

Cпасибо за ответы.
Но к сожалению не работает.

У объекта Sys.Process("calc").Window("CalcFrame", "Калькулятор", 1). - а дальше никакого Window("Edit", "", 1) даже и близко нет.

Когда же пытаюсь получить nResult = Sys.Process("calc").Window("CalcFrame", "Калькулятор", 1).Window("CalcFrame", "", 1).Window("#32770", "", 1).Window("Static", "*", 3).WndCaption выдает ошибку VBScript Требуется обьект: '[string: "66554"]' , где 66554 значение строки вывода калькулятора
  • 0

#5 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 17 ноября 2010 - 20:29

А по-простому нельзя -- эмулировать нажатие Ctrl-C и забрать строчку из клипборда?
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#6 kohcta

kohcta

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

  • Members
  • Pip
  • 6 сообщений
  • ФИО:Ингумат Дебоширов

Отправлено 17 ноября 2010 - 21:58

Спасибо за подсказку. И действительно самый простой вариант.
  • 0

#7 kohcta

kohcta

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

  • Members
  • Pip
  • 6 сообщений
  • ФИО:Ингумат Дебоширов

Отправлено 18 ноября 2010 - 11:14

Кстати, может кто-то подскажет как обращатся к объекту через составное имя, содержащее переменную? Например, к кнопкам из цикла. Aliases.calc.wnd_.CalcFrame.page32770["btn" + i%10].ClickButton(); чего-то не работает
  • 0

#8 Dmitry N

Dmitry N

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 742 сообщений
  • ФИО:Николаев Дмитрий
  • Город:Где-то в России

Отправлено 22 ноября 2010 - 13:31

Здравствуйте.

eval("Aliases.calc.wnd_.CalcFrame.page32770.btn" + i%10 + ".ClickButton()");


  • 0
С уважением,
Дмитрий


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

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