QTP - Regular Expression Example
1. Launch QTP and open a new test.
2. Open Internet Explorer.
[Now we have QTP with a blank test and Google open.]
3. Click on Record in order to start recording.
4. Copy and paste this URL (http://mail.yahoo.com) in the browser's address bar to open Yahoo mail login.
5. Type your user name and password to login to Yahoo mail.
6. When Yahoo mail is open, click on the Inbox link as shown in the screenshot below.[ Note: The Inbox can contain any number of mails. At any given point of time, Inbox(5) means 5 unread mails]
7. Click on Stop in order to stop recording. Then my recorded code looks like this:
Browser("Browser").Page("Page").Sync
Browser("Browser").Navigate "https://login.yahoo.com/config/login_verify2?&.src=ym"
Browser("Browser").Page("Yahoo! Mail: The best").WebEdit("login").Set "piyush
Browser("Browser").Page("Yahoo! Mail: The best").WebEdit("passwd").SetSecure "4801a2cbf793b46aad67194b5cbc961c091f"
Browser("Browser").Page("Yahoo! Mail: The best").WebButton("Sign In").Click
Browser("Browser").Page("Yahoo! Mail - piyush@yahoo.com").Link("Inbox (6)").Click
if you check any mail like if I check one mail in my inbox then it will be Inbox(5), then if I run this code it will fail because the link has changed from Inbox(6) to Inbox(5) and shows the below mentioned error.
"Cannot identify the object Inbox(6) (of class Link). Verify that this object`s properties match an object currently displayed in your application."
Now we will change the above code with the help of regular expression so that it will work even if there is only one unread mail.
In QTP go to Resources (menu) ->Object Repository.
Object Repository window will open. Select the object "Inbox(6)". Click on the label Inbox(6) inside Value column and then click on "<=>" button which will appear.
When you click on the button, it will open 'Value Configuration Options' window. On this window click on Regular Expression check box. When you click on checkbox it will show warning . Just click on Yes.
Now in the Constant text box inside the displayed window( what I have entered "Inbox \([5-6]\)" and click Ok and close Object Repository window.
This Regular Expression setting which we have done works for inbox unread mails between 5 and 6 e.g. if your inbox says inbox(5) or inbox(6).
Run the test. It passes for me because I had 5 unread mails in my inbox (inbox(5)).
You can do this setting according to your convenience e.g. [1-5] for unread mails between 1 and 5 and so on.