How to replace a URL in a canoo webtest

406 Views Asked by At

I have a canoo webtest where I would like to replace the current document URL by a new one, and proceed to that URL. Specifically, I'd like to replace a string "view.html" in the current document URL by "view-old.html" and navigate to the new URL.

The script would look like:

<clickButton htmlId="newDocForm_add"/>
<!-- get the url of the newly loaded page and replace "view" with "view-old" -->
< ??? >
<invoke description="go to modified URL" url="...newUrl..."/>
2

There are 2 best solutions below

0
On BEST ANSWER

I fianlly ended up doing it differently, by generating the modified URL from an ID field that can be found in the original URL, something like:

  <sequential>
    <ifStep description="if in new document edit, go to old version">
      <condition description="in new doc edit">
        <verifyDocumentURL text=".*/doc/view.html.*" regex="true" description="new doc edit url" />
      </condition>
      <then>
        <storeXPath description="Extract transaction id"
                    xpath="//form[@id='docdata-form']/input[@name='transaction.id']/@value"
                    property="transid" />
        <invoke description="Go to old edit page" url="/doc/view-old.html?id=#{transid}" />
      </then>
    </ifStep>
  </sequential>
1
On

Take a look at the groovy steps - they will help you to archive everything you need...

http://webtest.canoo.com/webtest/manual/groovy.html