/[TestComplete JScript]============================== // Function: SelectMainMenu // Description: selects a menu item from Infragistic Main menu // Parameters: // -pProcess - process of the application // -oMenu - main menu, object // -sMenuItem - menu item to select, string // Return: <none> // NOTES: menu items should be splitted with "|" symbol, e.g. "File|Options", "Administration|Edit|Account Roles" function SelectMainMenu(pProcess, oMenu, sMenuItem) { var aMenu = sMenuItem.split("|"); var i, j; // counter var iX = 0, iY = 0; // coordinates for clicking var iCount; // menu items count for each toolbar/popup menu var obj; // temporary object for different menuitems var iLevels = aMenu.length-1; // * * * Selecting top level menu item... iCount = oMenu.ToolbarsManager.Toolbars.Item(0).Tools.Count; // number of menu items in main menu for(i = 0; i < iCount; i++) { obj = oMenu.ToolbarsManager.Toolbars.Item(0).Tools.Item(i); Log.Message("Checking menu '" + obj.CaptionResolved.OleValue + "'"); if(obj.CaptionResolved.OleValue.match(aMenu[0])) { oMenu.Click(iX + obj.WidthResolved/2, iY + obj.Height/2); break; } else { iX += obj.WidthResolved*obj.VisibleResolved; } } // * * * After top level menu selected selecting other menus... //for(j = iLevels; j > 0; j--) for(j = 1; j <= iLevels; j++) { iX = 0; iY = 0; obj = pProcess.WinFormsObject("DropDownForm", "", 1).WinFormsObject("PopupMenuControlTrusted", ""); iCount = obj.MenuAgent.MenuItems.Count; for(i = 0; i < iCount; i++) { Log.Message("Checking menu item '" + obj.MenuAgent.MenuItems.Item(i).Text.OleValue + "'"); if(StrTran (obj.MenuAgent.MenuItems.Item(i).Text.OleValue, "&", "").match(aMenu[j])) { obj.Click(iX + 10, iY + 10); break; } else { iY += 25; } } } // j= iLevels... }
Monday, December 19, 2011
Select custom button in SwfToolbar
Sunday, December 18, 2011
Select all rows in Infragistics.Win.UltraWinGrid.UltraGrid
I have found the way to select all rows in table and check whether all that rows is selected or not.
Public Function Swf_SelectAllItems(ByRef objSwfTable)
Dim strStep: strStep= "Swf_SelectAllItems()"
Dim numRows,i
If objSwfTable.GetROProperty("enabled") Then
numRows = objSwfTable.RowCount
objSwfTable.Type micLCtrlDwn
For i = 0 to numRows-1
objSwfTable.SelectRow i
objSwfTable.Type micDwn
Next
objSwfTable.Type micLCtrlUp
Dim iSelectedRows: iSelectedRows = objSwfTable.Object.Selected.Rows.Count
If numRows = iSelectedRows Then
reporter.ReportEvent micDone,strStep,"Success: Successfully Select All Items"
Swf_SelectAllItems=True
Else
reporter.ReportEvent micWarning,strStep, "Fail: Does NOT select All Items"
Swf_SelectAllItems=False
End If
Else
reporter.ReportEvent micWarning,strStep, "The : table is NOT ENABLE."
End If
End Function
Public Function Swf_SelectAllItems(ByRef objSwfTable)
Dim strStep: strStep= "Swf_SelectAllItems()"
Dim numRows,i
If objSwfTable.GetROProperty("enabled") Then
numRows = objSwfTable.RowCount
objSwfTable.Type micLCtrlDwn
For i = 0 to numRows-1
objSwfTable.SelectRow i
objSwfTable.Type micDwn
Next
objSwfTable.Type micLCtrlUp
Dim iSelectedRows: iSelectedRows = objSwfTable.Object.Selected.Rows.Count
If numRows = iSelectedRows Then
reporter.ReportEvent micDone,strStep,"Success: Successfully Select All Items"
Swf_SelectAllItems=True
Else
reporter.ReportEvent micWarning,strStep, "Fail: Does NOT select All Items"
Swf_SelectAllItems=False
End If
Else
reporter.ReportEvent micWarning,strStep, "The : table is NOT ENABLE."
End If
End Function
Wednesday, December 7, 2011
Sending mails using Outlook and SMTP
Here we will see how we can send the mail after the test run using outlook and also using SMTP. First let us see how to send the mail using Outlook. This method though useful has the following drawbacks:
1. The system or machine where you are running the scripts should have outlook configured in it
2. The email will be sent in the name of the person whose email has been configured in the outlook.
3. Finally, outlook throws up a security message when you try to send an automated mail and to take care of this you will have to download a third party software called expressclick.
Well, if you still prefer to go by this method, then here is the code
systemutil.Run "C:\Program Files\Express ClickYes\ClickYes.exe"
wait 5
set oMailobj=CreateObject("Outlook.Application")
set oSendmail=oMailobj.CreateItem(0)
oSendmail.To=""
'oSendmail.Cc=""
oSendmail.Subject="Test"
oSendmail.Body="Hi" & vbcrLf & vbCrlf & "PFA the Smoke Test Automation Results" & vbCrlf & vbCrlf & "Thanks" & vbcrlf & "Automation Team"
sAttachment = "D:\Results.zip"
If (sAttachment <> "") Then
oSendmail.Attachments.Add(sAttachment)
Else
Reporter.ReportEvent micInfo,"Sending mail:","Unable to send attachment,please verify your attachment file"
End If
oSendmail.Send
wait 3
set oSendmail=Nothing
set oMailobj=Nothing
SystemUtil.CloseProcessByName "ClickYes.exe"
All these problems can be overcome by using SMTP mail. The only thing that you need to know is the SMTP server name and the machine should be in the network. Once you use this code you will never go back to using Outlook.
Set oMessage = CreateObject("CDO.Message")
oMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
'SMTP Server
oMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") ="servername or ip"
oMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
oMessage.Configuration.Fields.Update
oMessage.Subject = "Test"
oMessage.Sender = "" ' any non-existing mail id will also work.
oMessage.To =""
'oMessage.CC = ""
'oMessage.BCC = ""
oMessage.AddAttachment "D:\Results.zip"
oMessage.TextBody = "Hi" & vbcrLf & vbCrlf & "PFA the Smoke Test Automation Results & vbCrlf & vbCrlf & "Thanks" & vbcrlf & "Automation Team" & vbCrlf & vbCrlf & vbCrlf &"*********************************************************************************************************" & vbcrlf & "This is an auto-generated email. Please do not reply to this email." & vbcrlf &"*********************************************************************************************************"
oMessage.Send
Set oMessage = Nothing
Source: http://qtp-learnings.blogspot.com/2010/08/sending-mails-using-outlook-and-smtp.html
1. The system or machine where you are running the scripts should have outlook configured in it
2. The email will be sent in the name of the person whose email has been configured in the outlook.
3. Finally, outlook throws up a security message when you try to send an automated mail and to take care of this you will have to download a third party software called expressclick.
Well, if you still prefer to go by this method, then here is the code
systemutil.Run "C:\Program Files\Express ClickYes\ClickYes.exe"
wait 5
set oMailobj=CreateObject("Outlook.Application")
set oSendmail=oMailobj.CreateItem(0)
oSendmail.To="
'oSendmail.Cc="
oSendmail.Subject="Test"
oSendmail.Body="Hi" & vbcrLf & vbCrlf & "PFA the Smoke Test Automation Results" & vbCrlf & vbCrlf & "Thanks" & vbcrlf & "Automation Team"
sAttachment = "D:\Results.zip"
If (sAttachment <> "") Then
oSendmail.Attachments.Add(sAttachment)
Else
Reporter.ReportEvent micInfo,"Sending mail:","Unable to send attachment,please verify your attachment file"
End If
oSendmail.Send
wait 3
set oSendmail=Nothing
set oMailobj=Nothing
SystemUtil.CloseProcessByName "ClickYes.exe"
All these problems can be overcome by using SMTP mail. The only thing that you need to know is the SMTP server name and the machine should be in the network. Once you use this code you will never go back to using Outlook.
Set oMessage = CreateObject("CDO.Message")
oMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
'SMTP Server
oMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") ="servername or ip"
oMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
oMessage.Configuration.Fields.Update
oMessage.Subject = "Test"
oMessage.Sender = "
oMessage.To ="
'oMessage.CC = "
'oMessage.BCC = "
oMessage.AddAttachment "D:\Results.zip"
oMessage.TextBody = "Hi" & vbcrLf & vbCrlf & "PFA the Smoke Test Automation Results & vbCrlf & vbCrlf & "Thanks" & vbcrlf & "Automation Team" & vbCrlf & vbCrlf & vbCrlf &"*********************************************************************************************************" & vbcrlf & "This is an auto-generated email. Please do not reply to this email." & vbcrlf &"*********************************************************************************************************"
oMessage.Send
Set oMessage = Nothing
How to send email with attachment from outlook using qtp
Code:
Text1 ="The information contained in this message " _ & "constitutes privileged and confidential information " _ & "and is intended only for the use of and review by " _ & "the recipient designated above." Text2= "The information contained in this message " _ & "constitutes privileged and confidential information " _ & "and is intended only for the use of and review by " _ & "the recipient designated above." 'Multiline body Body= Text1 & vbCrLf & Text2 'path of the file sample.txt to be attached path="D:\sample.txt" 'Usage of Function "Send_Testresults" 'Multiple email Id can be used with semicolon as Seperator Send_Testresults"xx@mail.com;yy@abc.com","zz@xyz.com",,"Mail from QTPWorld.com",Body,path 'Function to send email Function Send_Testresults(sTo,sCC,sBCC,sSubject,sBody,sAttachment) 'Open outlook if Outlook is not open systemUtil.Run "OUTLOOK.EXE" wait (10) 'Create Outlook Object Set oMail = CreateObject("Outlook.Application") set Sendmail=oMail.CreateItem(0) Sendmail.To=sTo Sendmail.CC=sCC Sendmail.BCC=sBCC Sendmail.Subject=sSubject Sendmail.Body=sBody If (sAttachment <> "") Then Sendmail.Attachments.Add(sAttachment) End If Sendmail.Send oMail.quit set Sendmail=Nothing set oMail=Nothing End Function
Source: http://qtpworld.com/index.php?cid=89
Subscribe to:
Posts (Atom)