[Wtr-general] Negative Loop Regular Expression checks

Pierre Garigue PGarigue at EXTEND.COM
Thu Mar 9 12:32:31 EST 2006


try using an 'until'  with the use of =~ /regex/, it will make it clearer

also you may want add more detail to the regex such as it case sensitive? /i makes the regex match case insensitive.

-Pierre Garigue 
-----Original Message-----
From: Paul Carvalho [mailto:tester.paul at gmail.com]
Sent: Thursday, March 09, 2006 11:58 AM
To: wtr-general at rubyforge.org
Subject: [Wtr-general] Negative Loop Regular Expression checks


Hello all,

I'm having difficulty programming a negative loop.  That is, while something isn't there, then do this.  Here's an example:

I've scripted Watir to randomly select a report, and then when the report comes up it checks the month of the report.  If it's not the month I want, I have the script click the "Previous" link until it finds the report I want. 

Here's the code :
----
      while $ie.frame('MainWindow').span(:id, /ReportingPeriodValueLabel/).text != 'Dec 2005'
          $ie.frame('MainWindow').link(:text, 'Previous').click
      end
----

This works - most of the time.  The problem is that if the report happens to come up on particular page, the label value = 'Jan - Dec 2005' and the check above *always* fails.

I tried to change the comparison value to a regex but that didn't work.  That is, "while blahblah.text != /Dec 2005/" will be True even when the label = 'Dec 2005'! (That's no good.  I expect it to be false and break out of the loop.)

I think I'm missing something in the use of regular expressions that I just don't know yet.  (I'm just starting to learn about them - they are *way* handy.) 

Paul.




More information about the Wtr-general mailing list