Sunday, April 27, 2008

QTP Regular Expression Example 1

[This is just an example using Yahoo mail inbox. Your inbox unread mails may differ from the one shown in this 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 (https://login.yahoo.com/config/login_verify2?&.src=ym) 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.

7. Click on Stop in order to stop recording.
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 "sach2n"
Browser("Browser").Page("Yahoo! Mail: The best").WebEdit("passwd").SetSecure "4801a2cbf793b46aad67194b5cbc961c071f"
Browser("Browser").Page("Yahoo! Mail: The best").WebButton("Sign In").Click
Browser("Browser").Page("Yahoo! Mail - sach2n@yahoo.com").Link("Inbox (6)").Click

Now if you don't check any mail in your inbox and log out and then again run this code it will work fine.
But if you check any mail like if I check one mail in my inbox then it will be Inbox(5) in the above screen shot, then if I run this code it will fail and show the below error.

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. Now follow the screen shots below.





When you click on the button as in above screen shot 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 as in the screen shot below. Just click on Yes.


Now in the Constant text box (above screenshot) enter 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.