7

I'm using WatiN (Web Application Testing in .Net) to do integration testing on a Dynamics CRM 4.0 website. CRM uses a lot of popup windows - eg clicking on a Contact in a list opens a new browser window with the Contact's details.

I want to test:

  • login to CRM (done)
  • go to the Contact list (done)
  • click on an Contact, thus trigger the popup (done)
  • test functionality within the Contact entity/form (can't do)

So I need to get hold of the popped up window. How?

Thanks.

ccellar
  • 10,326
  • 2
  • 38
  • 56
Rocho
  • 195
  • 1
  • 2
  • 5
  • 1
    I don't suppose complaining about bad user experience is an option? I don't expect you'll get far down that road though... ;-) – RBerteig Mar 18 '09 at 07:34

3 Answers3

11
//after the click that opens the popup:    
IE iepopup_1 = IE.AttachToIE(Find.ByUrl(theUrlOfThePopup));
//operate on iepopup_1
eglasius
  • 35,831
  • 5
  • 65
  • 110
9

Syntax has changed slightly in newest version of WatiN (v2.0.20.1089), is now:

IE poppedUpBrowser = IE.AttachTo<IE>(Find.ByUrl("http://www.popped-up-site.co.uk/"));
stephen
  • 1,200
  • 1
  • 13
  • 16
2

Maybe searching for only part of the URL would solve it. This can be done using regular expressions:

System.Text.RegularExpressions.Regex popupHiddenRegEx = new System.Text.RegularExpressions.Regex("part_Of_URL");
IE poppedUpBrowser = IE.AttachTo<IE>(Find.ByUrl(popupHiddenRegEx));