Option Explicit
Private Declare Function SetCursorPos Lib "user32" _
(ByVal x As Long, ByVal y As Long) As Long
Sub Main()
'open Windows Explorer in "My Computer"
Window("Desktop Window").Attach
ListView("Index=1").Select "CD Drive (E:)", tpMouseRight
PopupMenuEx2 "Properties"
Window("Application=Explorer.exe Classname='#32770'").Attach
Button("Caption=OK").Click
End Sub
Private Function PopupMenuEx2(sMenuPath As String) As Boolean
Dim iMenuCount As Integer
Dim sMenuSplit As Variant
Dim iMenuPos As Integer
SetCursorPos 1, 1
Window.MouseMove 1, 1
'Note that this is important. This is to minimize code in SelectMenuItem
SendKeys "{DOWN}", True
sMenuSplit = Split(sMenuPath, "~")
For iMenuCount = 0 To UBound(sMenuSplit)
SelectMenuItem sMenuSplit(iMenuCount), iMenuCount > 0
If iMenuCount = UBound(sMenuSplit) Then
SendKeys "{ENTER}", True
Exit For
Else
SendKeys "{RIGHT}", True
End If
Next
End Function
Private Function SelectMenuItem(ByVal sMenuStr As String, isSubMenu As Boolean) As Integer
Dim mnu As TMenu
Dim ti As TMenuItem
Dim i As Integer
Dim sAttachName As String
Const DELAY = 100
sAttachName = Window.Application
sAttachName = "Application=" & sAttachName & " ClassName='#32768'"
If isSubMenu = False Then
Set mnu = Window(sAttachName).GetMenu(tpPopupMenu)
Else
Set mnu = Window(sAttachName).GetMenu(tpMenu)
End If
For i = 1 To mnu.Count
Set ti = mnu.GetItem(i)
If ti.Text = sMenuStr Then
Sleep DELAY, tpPauseMilliSeconds
Exit Function
End If
If Not (ti.IsSeparator) Then
Sleep DELAY, tpPauseMilliSeconds
SendKeys "{DOWN}", True
End If
Next
End Function
~ts
Saturday, August 23, 2008
Handle popup menus manually in TestPartner
One of the areas where TestPartner 6.1.x is challenged in controlling application under test (AUT) is Popup Menus. It handles it one time but sometimes it complains that the menu is not detected but it is clearly infront of the screen. Though it is working ~80% of the time but Murphy's law has it that if anything can go wrong, it will. What I have come up so far is to handle popup menus manually. See below for the code, so far it seems to meet my needs.
Subscribe to:
Post Comments (Atom)
QNX: Running a function at specific interval using timer interrupt
#include <iostream> #include <csignal> #include <ctime> #include <cerrno> #include <cstring> #include <unis...
-
Installing MonoDevelop in OpenSUSE 12.2 from its repository was very easy. When running it for the first time though I got the message: Th...
-
Tried to update my Ubuntu host today and it did pickup that new version of VirtualBox is available (4.1.8). All other packages installed pro...
-
This is quick start guide how to run ssh server on QNX. Tested on QNX 6.5 (650SP1-VM.tar). # ssh-keygen -t dsa -b 1024 -f /etc/ssh/ssh...
No comments:
Post a Comment