Hi Marc
   Thanks for the pointers .  Both of them worked
       a) I was able to modiy the XPathHelper and then register the EXSTL
name spaces . One suggestion : Now that u are using Xalan for the XSLT can
you by default register all the namespaces that are part of the EXSLT (dyn,
math etc)

       b) The suggesting about using the groovy test also worked

Regards
Hari

On Fri, May 23, 2008 at 1:55 PM, Marc Guillemot <[EMAIL PROTECTED]> wrote:

> Hi,
>
> it is possible to define and register custom XPath functions (look in
> WebTest sources at the CleanTextFunction for instance) but I would be
> carefully here as it is an area that has changed due to migration to
> HtmlUnit-2.1 and that may change again.
>
> In your case, what about just
> <groovy>
> def links =
> step.context.currentResponse.getByXPath("//[EMAIL 
> PROTECTED]'mybreadcrumb']/div
> > /div/div[1]/a")
>
> def link = links.size() > 1 ? links[-2] : links[-1]
> link.click()
> </groovy>
>
> Cheers,
> Marc.
> --
> Blog: http://mguillem.wordpress.com
>
>
> Harihara Vinayakaram wrote:
> > Hi
> >    Here is what I am trying to do . My tests are in groovy not in xml .
> >
> >    I am trying to choose a link to click based on the xpath .(i.e )
> > choose the last but one link .
> >
> >    The xpath expression I used is //[EMAIL PROTECTED]'mybreadcrumb']/div
> > /div/div[1]/a[max(1,last()-1)]
> >
> >    But from the stacktrace I  find that webtest is unable to find the
> > function max
> >
> >    What should I do to get Webtest find the function max
> >
> > Regards
> > Hari
> >
> >
> > On Wed, May 21, 2008 at 1:50 PM, Marc Guillemot <[EMAIL PROTECTED]
> > <mailto:[EMAIL PROTECTED]>> wrote:
> >
> >     Not sure to follow. EXSLT surely needs to be registered in some way.
> >
> >     Alternatively you can write your own extension or, surely easier, use
> a
> >     groovy step or write a custom step.
> >
> >     Cheers,
> >     Marc.
> >     --
> >     Blog: http://mguillem.wordpress.com
> >
> >
> >     Harihara Vinayakaram wrote:
> >     > I looked at the xalan implementation and figured out that the max
> >     > function is not bundled and need a EXSLT support . The name space
> >     > mentioned in dyn:max
> >     >
> >     > I looked around for a EXSLT.jar which I can put in the
> >     webtest.home /lib
> >     > . But there does not seem to be any .jar file . There seems to be
> >     > support for xsl , but no jars .
> >     >
> >     > Let me know how to proceed
> >     >
> >     > Regards
> >     > Hari
> >     >
> >     > On Sun, May 18, 2008 at 3:49 PM, Harihara Vinayakaram
> >     <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
> >     > <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>> wrote:
> >     >
> >     >     The error is
> >     >     //[EMAIL 
> > PROTECTED]'mybreadcrumb']/div/div/div[1]/a[max(1,last()-1)]
> >     >
> >     >     and the stack trace says:
> >     >
> >     >     javax.xml.xpath.XPathExpressionException: Could not find
> >     function: max
> >     >
> >     >
> >     >
> >     >       at
> >
> com.canoo.webtest.engine.xpath.XPathHelper.handleException(XPathHelper.java:265)
> >     >       at
> >
> com.canoo.webtest.engine.xpath.XPathHelper.getByXPath(XPathHelper.java:307)
> >     >       at
> >
> com.canoo.webtest.engine.xpath.XPathHelper.selectFirst(XPathHelper.java:278)
> >     >
> >     >
> >     >
> >     >       at
> >
> com.canoo.webtest.boundary.HtmlUnitBoundary.trySelectSingleNodeByXPath(HtmlUnitBoundary.java:63)
> >     >       at
> >
> com.canoo.webtest.steps.request.AbstractIdOrLabelTarget.findClickableElementByXPath(AbstractIdOrLabelTarget.java:118)
> >     >
> >     >
> >     >
> >     >       at
> >
> com.canoo.webtest.steps.request.AbstractIdOrLabelTarget.findClickableElement(AbstractIdOrLabelTarget.java:82)
> >     >
> >     >
> >     >
> >     >     Regards
> >     >     Hari
> >     >
> >     >     On Sun, May 18, 2008 at 3:44 PM, Harihara Vinayakaram
> >     >     <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
> >     <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>> wrote:
> >     >
> >     >         Hi
> >     >           That was a typo in what I typed . The error in the
> >     stacktrace
> >     >         says max: function not found
> >     >
> >     >         Regards
> >     >         Hari
> >     >
> >     >
> >     >         On Sun, May 18, 2008 at 3:23 PM, Dierk König
> >     >         <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
> >     <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>>
> wrote:
> >     >
> >     >             wrong parens nesting
> >     >
> >     >             | I tried //abc[max((1,last()-1))]
> >     >                                ^
> >     >             max takes two args but you give it only one
> >     >
> >     >             cheers
> >     >             Dierk
> >     >
> >     >             |
> >     >             | But I am getting a max class not found exception
> >     when I run
> >     >             | with webtest. . I guess this means that xalan's
> >     exslt is not
> >     >             | bundled in the library. I tried copying saxon.jar
> >     which has a
> >     >             | minimax function into .groovy/lib but that does not
> work
> >     >             |
> >     >             | Any ideas
> >     >             |
> >     >             |
> >     >             | On Fri, May 16, 2008 at 10:07 PM, Dierk König
> >     >             | <[EMAIL PROTECTED]
> >     <mailto:[EMAIL PROTECTED]> <mailto:[EMAIL PROTECTED]
> >     <mailto:[EMAIL PROTECTED]>>>
> >     >             wrote:
> >     >             |
> >     >             |
> >     >             |       how about
> >     >             |       //abc[max(1,last()-1)]
> >     >             |       ?
> >     >             |
> >     >             |       BTW: abc[x] is short for abc[position()=x],
> >     which means
> >     >             | it is _not_ the
> >     >             |       xth abc in the document but an abc that is the
> xth
> >     >             | child of whatever
> >     >             |       parent.
> >     >             |
> >     >             |       cheers
> >     >             |       Dierk
> >     >             |
> >     >             |
> >     >             |       | -----Original Message-----
> >     >             |       | From: [EMAIL PROTECTED]
> >     <mailto:[EMAIL PROTECTED]>
> >     >             <mailto:[EMAIL PROTECTED]
> >     <mailto:[EMAIL PROTECTED]>>
> >     >             |
> >     >             |       | [mailto:[EMAIL PROTECTED]
> >     <mailto:[EMAIL PROTECTED]>
> >     >             <mailto:[EMAIL PROTECTED]
> >     <mailto:[EMAIL PROTECTED]>>] On Behalf Of
> >     >             | George Policello
> >     >             |       | Sent: Freitag, 16. Mai 2008 17:54
> >     >             |       | To: [email protected]
> >     <mailto:[email protected]>
> >     >             <mailto:[email protected]
> >     <mailto:[email protected]>>; Harihara Vinayakaram
> >     >             |       | Subject: RE: [Webtest] Re: XPath
> >     implementation in
> >     >             WebTest
> >     >             |       |
> >     >             |       | I do not have an XPath manual in front of me
> at
> >     >             the moment
> >     >             |       | but wonder if this would work.
> >     >             |       |
> >     >             |       |
> >     >             |       |
> >     >             |       | //abc[last()-1] | //abc[last()]
> >     >             |       |
> >     >             |       |
> >     >             |       |
> >     >             |       | It would in some scripting languages and some
> >     >             | compiled languages.
> >     >             |       |
> >     >             |       |
> >     >             |       |
> >     >             |       | Also, a conditional could probably work
> >     using the
> >     >             "nilled(
> >     >             |       //abc[last() -1] )" function in XPath.
> >     >             |       |
> >     >             |       |
> >     >             |       |
> >     >             |       | George
> >     >             |       |
> >     >             |       | ________________________________
> >     >             |       |
> >     >             |       | From: [EMAIL PROTECTED]
> >     <mailto:[EMAIL PROTECTED]>
> >     >             <mailto:[EMAIL PROTECTED]
> >     <mailto:[EMAIL PROTECTED]>>
> >     >             |       | [mailto:[EMAIL PROTECTED]
> >     <mailto:[EMAIL PROTECTED]>
> >     >             <mailto:[EMAIL PROTECTED]
> >     <mailto:[EMAIL PROTECTED]>>] On Behalf Of Harihara
> >     >             |       | Vinayakaram
> >     >             |       | Sent: Friday, May 16, 2008 8:40 AM
> >     >             |       | To: [email protected]
> >     <mailto:[email protected]>
> >     >             <mailto:[email protected]
> >     <mailto:[email protected]>>
> >     >             |       | Subject: [Webtest] Re: XPath implementation
> >     in WebTest
> >     >             |       |
> >     >             |       |
> >     >             |       |
> >     >             |       | I am sorry but the xpath expression works
> >     the same
> >     >             way in
> >     >             |       | Saxon as it does in webtest .
> >     >             |       | So maybe I am looking for an xpath
> >     expression that
> >     >             gets the
> >     >             |       | only node even if the expression is last() -1
> >     >             |       |
> >     >             |       | Regards
> >     >             |       | Hari
> >     >             |       |
> >     >             |       |
> >     >             |       |
> >     >             |       | On Fri, May 16, 2008 at 8:49 PM, Harihara
> >     Vinayakaram
> >     >             |       | <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
> >     <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>> wrote:
> >     >             |       |
> >     >             |       | Hi
> >     >             |       |   I am not sure if this is the right place
> >     to ask this
> >     >             |       | question . But anyway
> >     >             |       |
> >     >             |       | My understanding is that the xpath exression
> >     >             //abc[last()-1]
> >     >             |       | will return the last but one element named
> abc .
> >     >             |       |
> >     >             |       | It works most of the times except when there
> >     is only
> >     >             | one element .
> >     >             |       |
> >     >             |       | In that case WebTest returns element not
> found
> >     >             while others
> >     >             |       | like saxon for example returns the last
> >     element .
> >     >             |       |
> >     >             |       | Is this a bug ? or is my understanding wrong
> >     >             |       |
> >     >             |       | Regards
> >     >             |       | Hari
> >     >             |       |
> >     >             |       |
> >     >             |       |
> >     >             |       |
> >     >             |
> >     >             |       _______________________________________________
> >     >             |       WebTest mailing list
> >     >             |       [email protected]
> >     <mailto:[email protected]> <mailto:[email protected]
> >     <mailto:[email protected]>>
> >     >             |
> http://lists.canoo.com/mailman/listinfo/webtest
> >     >             |
> >     >             |
> >     >             |
> >     >             |
> >     >
> >     >
> >     >
> >     >
> >
> >     _______________________________________________
> >     WebTest mailing list
> >     [email protected] <mailto:[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