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

Аудит и оптимизация QA-процессов
онлайн, начало 24 декабря
Автоматизация функционального тестирования
онлайн, начало 27 ноября
Логи как инструмент тестировщика
онлайн, начало 30 ноября
Тестирование REST API
онлайн, начало 30 ноября
Фотография

нахождения координат View


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

#1 Steve

Steve

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

  • Members
  • Pip
  • 11 сообщений
  • ФИО:Миронов Андрей Иванович

Отправлено 16 декабря 2008 - 13:27

Народ, как применить метод GetRect() к View (Notepad) для нахождения координат View?
Ведь View не является обьєктом окна.

Заранее спасибо! :)
  • 0

#2 vass

vass

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

  • Members
  • PipPipPipPip
  • 298 сообщений
  • ФИО:Василий

Отправлено 17 декабря 2008 - 14:25

Открыл свой notepad.exe. View не нашел нигде.
Во-первых - подозреваю, что это пункт меню ... хотя скорее всего - ошибаюсь :blush:
Во-вторых - даже не знаю -- что конкретно хотелось узнать ?

Вообще-то, координаты используются чаще всего для
а) кликов по данной области (предпочтительно брать координаты относительно Desktop'a)
б) проверок изображения области (CaptureBitmap и его вариации, либо GetPixel из gdi32.dll )
  • 0

#3 Steve

Steve

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

  • Members
  • Pip
  • 11 сообщений
  • ФИО:Миронов Андрей Иванович

Отправлено 17 декабря 2008 - 14:53

Открыл свой notepad.exe. View не нашел нигде.
Во-первых - подозреваю, что это пункт меню ... хотя скорее всего - ошибаюсь :blush:
Во-вторых - даже не знаю -- что конкретно хотелось узнать ?

Вообще-то, координаты используются чаще всего для
а) кликов по данной области (предпочтительно брать координаты относительно Desktop'a)
б) проверок изображения области (CaptureBitmap и его вариации, либо GetPixel из gdi32.dll )


View – это меню «Вид» в русском Notepadе (Блокноте).
А мне нужно найти координаты меню View (Вид) для кликов по данной области.
Потому что в зависимости от языка Notepad координаты меню View (Вид) изменяются (на английском Notepadе – это одни координаты, а на немецком или другом Notepadе – другие координаты. )
Так вот, как с помощью GetRect () или другим способом найти координаты View (Вид)?
  • 0

#4 Dmitry_NS

Dmitry_NS

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

  • Members
  • PipPip
  • 134 сообщений
  • ФИО:Дима
  • Город:Елизово

Отправлено 17 декабря 2008 - 15:25

А мне нужно найти координаты меню View (Вид) для кликов по данной области.
Потому что в зависимости от языка Notepad координаты меню View (Вид) изменяются (на английском Notepadе – это одни координаты, а на немецком или другом Notepadе – другие координаты. )
Так вот, как с помощью GetRect () или другим способом найти координаты View (Вид)?


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

Тогда есть путь попроще :)

1) При записи деклараций окон используйте в тегах используйте не Caption, а, например, порядковый номер контрола (#).

2) А лучше дать вашим пунктам меню правильные теги. Например,

tag "View|Вид|Bekijken"

Этот тег говорит силктесту о том, что меню может иметь один из трех кепшенов (View - для англ версии, Вид - для русской и Bekijken - для немецкой).
  • 0
Основной принцип моего существования — служение гуманистическим идеалам человечества.

#5 vass

vass

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

  • Members
  • PipPipPipPip
  • 298 сообщений
  • ФИО:Василий

Отправлено 17 декабря 2008 - 15:39

View – это меню «Вид» в русском Notepadе (Блокноте).
А мне нужно найти координаты меню View (Вид) для кликов по данной области.
Потому что в зависимости от языка Notepad координаты меню View (Вид) изменяются (на английском Notepadе – это одни координаты, а на немецком или другом Notepadе – другие координаты. )
Так вот, как с помощью GetRect () или другим способом найти координаты View (Вид)?

ясно :) У notepad'a для Win2k такой менюшки нет ;)
в связи с этим присоединяюсь к предыдущему посту - использовать для тега Caption "View", Index "#4" (или - Window ID "$nnn" , хотя для View он неопределен :( )
  • 0

#6 Genka

Genka

    Гуру

  • Members
  • PipPipPipPipPipPip
  • 1 328 сообщений
  • ФИО:Геннадий Алпаев
  • Город:Украина, Днепр


Отправлено 17 декабря 2008 - 15:47

ясно :) У notepad'a для Win2k такой менюшки нет ;)


Хм... Любопытно. Ну в этом меню только один подпункт - Status Bar :)
Причем по умолчанию он отключен...
  • 0

TestComplete для начинающих (видеозаписи курса)

Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)

Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest


#7 Dmitry_NS

Dmitry_NS

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

  • Members
  • PipPip
  • 134 сообщений
  • ФИО:Дима
  • Город:Елизово

Отправлено 17 декабря 2008 - 15:56

View – это меню «Вид» в русском Notepadе (Блокноте).
А мне нужно найти координаты меню View (Вид) для кликов по данной области.
Потому что в зависимости от языка Notepad координаты меню View (Вид) изменяются (на английском Notepadе – это одни координаты, а на немецком или другом Notepadе – другие координаты. )
Так вот, как с помощью GetRect () или другим способом найти координаты View (Вид)?

ясно :) У notepad'a для Win2k такой менюшки нет ;)
в связи с этим присоединяюсь к предыдущему посту - использовать для тега Caption "View", Index "#4" (или - Window ID "$nnn" , хотя для View он неопределен :( )


Я еще немного дополню. В теге также можно указывать местоположение контрола. Например,
tag "@(10, 20)"

Но я бы все-таки посоветовал прежде всего попробовать перечислять возможные теги (View, Вид и т.п.) через символ |.
  • 0
Основной принцип моего существования — служение гуманистическим идеалам человечества.

#8 Steve

Steve

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

  • Members
  • Pip
  • 11 сообщений
  • ФИО:Миронов Андрей Иванович

Отправлено 17 декабря 2008 - 16:03

View – это меню «Вид» в русском Notepadе (Блокноте).
А мне нужно найти координаты меню View (Вид) для кликов по данной области.
Потому что в зависимости от языка Notepad координаты меню View (Вид) изменяются (на английском Notepadе – это одни координаты, а на немецком или другом Notepadе – другие координаты. )
Так вот, как с помощью GetRect () или другим способом найти координаты View (Вид)?

ясно :) У notepad'a для Win2k такой менюшки нет ;)
в связи с этим присоединяюсь к предыдущему посту - использовать для тега Caption "View", Index "#4" (или - Window ID "$nnn" , хотя для View он неопределен :( )


Я еще немного дополню. В теге также можно указывать местоположение контрола. Например,
tag "@(10, 20)"

Но я бы все-таки посоветовал прежде всего попробовать перечислять возможные теги (View, Вид и т.п.) через символ |.



А можно как то с помощью метода GetRect() найти координаты меню View?
  • 0

#9 vass

vass

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

  • Members
  • PipPipPipPip
  • 298 сообщений
  • ФИО:Василий

Отправлено 17 декабря 2008 - 17:11

Я еще немного дополню. В теге также можно указывать местоположение контрола. Например,
tag "@(10, 20)"
Но я бы все-таки посоветовал прежде всего попробовать перечислять возможные теги (View, Вид и т.п.) через символ |.

можно. но для обычных Menu/MenuItem оно недоступно.

А можно как то с помощью метода GetRect() найти координаты меню View?

Увы, похоже - не штатными средствами силка :(
я бы копал отсюда :
typedef struct tagMENUITEMINFOA
{
	UINT	cbSize;
	UINT	fMask;
	UINT	fType;		  // used if MIIM_TYPE (4.0) or MIIM_FTYPE (>4.0)
	UINT	fState;		 // used if MIIM_STATE
	UINT	wID;			// used if MIIM_ID
	HMENU   hSubMenu;	   // used if MIIM_SUBMENU
	HBITMAP hbmpChecked;	// used if MIIM_CHECKMARKS
	HBITMAP hbmpUnchecked;  // used if MIIM_CHECKMARKS
	DWORD   dwItemData;	 // used if MIIM_DATA
	LPSTR   dwTypeData;	 // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0)
	UINT	cch;			// used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0)
#if (_WIN32_WINNT >= 0x0500)
	HBITMAP hbmpItem;	   // used if MIIM_BITMAP
#endif
}   MENUITEMINFOA, FAR *LPMENUITEMINFOA;

  • 0

#10 Int_21h

Int_21h

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

  • Members
  • Pip
  • 21 сообщений
  • ФИО:Александр

Отправлено 17 октября 2011 - 10:03

А почему именно рект?
В Notepad менюшки нормально идентифицируются -
MainWin("*Notepad").Menu("#{id}").MenuItem("#{id}")

И тут еже не зависит будет этот контрол 5х5 пикселей или 100х100.

Если же нужны координаты, то почему не пойти таким путем:
RECT rView = MainWin("*Notepad").Menu("#{id}").MenuItem("#{id}").GetRect()
rView.xPos //OX position
rView.yPos //OY position
rView.xSize //OX size
rView.ySize //OY size

Или я что-то не так понял?
  • 0


Программирование на С# для тестировщиков
онлайн
Автоматизатор мобильных приложений
онлайн
Selenium WebDriver: полное руководство
онлайн
Программирование на Python для тестировщиков
онлайн



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

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

Яндекс.Метрика
Реклама на портале