I don't know much about Groovy, but I think that it could be related
to that which is explained there:
http://docs.codehaus.org/display/GroovyJSR/Groovy+String+Handling

I would replace
>>         verifyCheckbox xpath:"$currentButton", checked:"false"
with:
verifyCheckbox xpath:'$currentButton', checked:"false"

(Replacing double quotes with simple quotes to avoid escaping).

Regards,
-- 
Jean
2009/6/16  <[email protected]>:
> Hello Sandro,
>
> thanks for the suggestion, but no luck either, unfortunately.
>
> I have now had a look at the source code of the repeat step. From my limited 
> point of view, I think the problem is that the counter _is not_ stored as a 
> webtest property if the loop is using an XPath expression. So far, I have not 
> found any way to retrieve the current node. Maybe I should open a JIRA ticket?
>
> Regards
> Beat
>
>
> ---- [email protected] schrieb:
>>
>> Hi Beat,
>>
>> maybe this could work:
>>
>> the repeat step places the counterName-Value in a webtest property, not a
>> groovy variable, which can't be accessed using $propertyName.
>> Groovy tries to evaluate $propertyName as a groovy variable, which will
>> fail.
>>
>> Try "\${propertyName}" to access the webtest-property(-> Ant).
>> But be carefull, the expression "\${propertyName}" is only evaluated inside
>> a webtest-step like verfiyXPath. The following won't work:
>>
>> def varName = "\${webTestProperty}"
>>
>> The result will exactly be the string, but not the property's value :)
>>
>> Regards,
>> Sandro
>>
>>
>>
>>
>>
>>              Beat Koch
>>              <[email protected]
>>              >                                                          To
>>              Sent by:                  [email protected]
>>              webtest-ad...@gat                                          cc
>>              e4.canoo.com
>>              15.06.2009 00:34                                      Subject
>>                                        [Webtest] RE: Repeat step in a
>>                                        Groovy test case
>>              Please respond to
>>              [email protected]
>>                   oo.com
>>
>>
>>
>>
>>
>>
>>
>> I've done some tests (i.e. dozens of trial and error runs)... The following
>> Webtest ant script works perfectly:
>>
>> ---
>> <?xml version="1.0"?>
>> <!DOCTYPE project SYSTEM "../dtd/Project.dtd">
>> <project default="test">
>> <target name="test">
>> <webtest name="Check repeat step">
>>  <invoke url="http://localhost/~bkoch/cbt.html"/>
>>  <repeat xpath="//inp...@type='checkbox']" counterName="currentButton">
>>    <verifyCheckbox xpath="$currentButton" checked="false"/>
>>  </repeat>
>>  <repeat xpath="//inp...@type='radio']" counterName="rb">
>>    <verifyRadioButton xpath="$rb" checked="false"/>
>>  </repeat>
>>  <repeat count="3">
>>    <testInfo type="Debug" info="Hello world: #{count}" />
>>  </repeat>
>> </webtest>
>> </target>
>> </project>
>> ---
>>
>> However, the following Webtest Groovy class can not be executed:
>>
>> ---
>> import com.canoo.webtest.WebtestCase
>>
>> class SimpleTest extends WebtestCase {
>>   void testWebtestOnGoogle() {
>>     webtest("Check repeat step") {
>>       invoke "http://localhost/~bkoch/cbt.html";
>>       repeat (xpath:"//inp...@type='checkbox']",
>> counterName:"currentButton") {
>>         verifyCheckbox xpath:"$currentButton", checked:"false"
>>       }
>>       repeat (xpath:"//inp...@type='radio']", counterName:"rb") {
>>         verifyRadioButton xpath:"$rb", checked:"false"
>>       }
>>       repeat (count:"3") {
>>         testInfo type:"Debug", info:"Hello world: #{count}"
>>       }
>>     }
>>   }
>> }
>> ---
>>
>> The error is:
>> 1) testWebtestOnGoogle(SimpleTest)groovy.lang.MissingPropertyException: No
>> such property: currentButton for class: SimpleTest
>> at
>> org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:49)
>> at
>> org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:49)
>> at
>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:240)
>> at
>> SimpleTest$_testWebtestOnGoogle_closure1_closure2.doCall(repeatTest.groovy:8)
>>
>> Line 8 is the verifyCheckbox one. If I comment it out, then the error
>> appears on the verifyRadioButton line. Strangely enough, the testInfo line
>> executes fine. As a consequence, I have tried to use #{currentButton}
>> instead of $currentButton on the verifyCheckbox line but then I get the
>> following error during execution:
>>
>>  com.canoo.webtest.engine.StepExecutionException
>>
>> Stacktrace
>>
>> : Error processing xpath "#{currentButton}"., Step: VerifyCheckbox at :
>> with (taskName="verifyCheckbox")
>>
>> I believe that the ant script and Groovy class are identical from a
>> semantical point of view. Either I'm wrong about this (and I would
>> appreciate any pointer to the correct Groovy implementation) or there
>> really is a problem with Webtest.
>>
>> Regards
>> Beat
>>
>>
>> PS: This is my test page:
>>
>> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "
>> http://www.w3.org/TR/html4/strict.dtd";>
>> <html>
>> <head>
>> <title>Checkbox test page</title>
>> </head>
>> <body>
>>  <form name="CBT">
>>    <p><input type="checkbox" id="cb1"/></p>
>>      <p><input type="checkbox" id="cb2"/></p>
>>    <p><input type="checkbox" id="cb3"/></p>
>>
>>    <p><input type="radio" id="rb1" name="group1"/></p>
>>      <p><input type="radio" id="rb2" name="group1"/></p>
>>    <p><input type="radio" id="rb3" name="group1"/></p>
>>  </form>
>> </body>
>> </html>
>>
>>
>>
>> PricewaterhouseCoopers Aktiengesellschaft Wirtschaftsprüfungsgesellschaft
>>
>> Vorsitzender des Aufsichtsrates
>> WP StB Reiner Dickmann
>>
>> Vorstandsmitglieder
>> WP StB Hans Wagener · WP StB Peter Albrecht · WP StB Frank Brebeck · StB
>> Prof. Dr. Dieter Endres
>> WP StB Ernst-Wilhelm Frings · WP RA Dr. Hans Friedrich Gelhausen · WP StB
>> Werner Hölzl
>> WP StB Prof. Dr. Georg Kämpfer · WP RA StB Dr. Jan Konerding · WP StB Georg
>> Kütter · Dr. Ludger Mansfeld
>> StB Marius Möller · WP StB Franz Nienborg · WP StB Gert-Michael Raabe
>> WP StB Martin Scholich · RA StB Christoph Schreiber · WP StB Dr. Norbert
>> Vogelpoth
>> WP StB Franz Wagner · WP StB Wolfgang Wagner · WP StB Prof. Dr. Norbert
>> Winkeljohann
>>
>> Sitz: Frankfurt am Main - Amtsgericht Frankfurt am Main HRB 44845
>>
>> Mitglied von PricewaterhouseCoopers International, einer Company limited by
>> guarantee registriert in England und Wales
>> _________________________________________________________________
>> Diese Information ist ausschliesslich fuer den Adressaten bestimmt und kann
>> vertraulich oder gesetzlich geschuetzte Informationen enthalten. Wenn Sie
>> nicht der bestimmungsgemaesse Adressat sind, unterrichten Sie bitte den
>> Absender und vernichten Sie diese Mail. Anderen als dem
>> bestimmungsgemaessen Adressaten ist es untersagt, diese E-Mail zu lesen, zu
>> speichern, weiterzuleiten oder ihren Inhalt auf welche Weise auch immer zu
>> verwenden. Wir verwenden aktuelle Virenschutzprogramme. Fuer Schaeden, die
>> dem Empfaenger gleichwohl durch von uns zugesandte mit Viren befallene
>> E-Mails entstehen, schliessen wir jede Haftung aus.
>>
>> * * * * *
>>
>> The information contained in this email is intended only for its addressee
>> and may contain confidential and/or privileged  information. If the reader
>> of this email is not the intended recipient, you are hereby notified that
>> reading, saving, distribution or use of the content of this email in any
>> way is prohibited. If you have received this email in error, please notify
>> the sender and delete the email. We use updated antivirus protection
>> software. We do not accept any responsibility for damages caused anyhow by
>> viruses transmitted via email.
>
> _______________________________________________
> WebTest mailing list
> [email protected]
> http://lists.canoo.com/mailman/listinfo/webtest
>
_______________________________________________
WebTest mailing list
[email protected]
http://lists.canoo.com/mailman/listinfo/webtest

Reply via email to