[Webtest] <verifyXPath xpath="//*[text()='foo']" regex="true"/>
throws ClassCastException
Marc Guillemot
Marc Guillemot <mguillemot@yahoo.fr>
Wed, 19 Mar 2008 12:40:47 +0100
Hi Christoph,
the ClassCastException is is surely a bug but:
- your xpath is invalid
- HtmlUnit 2.0 will not use Jaxen anymore therefore it will be unlikely
to occur (no custom DocumentNavigator)
Cheers,
Marc.
--
Blog: http://mguillem.wordpress.com
Christoph Witych wrote:
> Hi Marc,
>
>
>
> using the step
>
>
>
> <verifyXPath xpath="//***[text()='foo']" regex="true"/>
>
>
>
> results in a ClassCastException (see stacktrace below).
>
>
>
> If I use <verifyXPath xpath="//*span*[text()='foo']" regex="true"/>
> instead everything works fine.
>
>
>
> This occurs with builds 1660 and 1690...
>
>
>
> May be a bug?
>
>
>
>
>
> Cheers,
>
> Christoph
>
>
>
>
>
> Unexpected exception caught: java.lang.ClassCastException
>
> at com.canoo.webtest.steps.StepUtil.handleException(StepUtil.java:113)
>
> at com.canoo.webtest.steps.Step.handleException(Step.java:378)
>
> at com.canoo.webtest.steps.Step.execute(Step.java:109)
>
> at
> org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
>
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>
> at java.lang.reflect.Method.invoke(Method.java:585)
>
> at
> org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
>
> at org.apache.tools.ant.Task.perform(Task.java:348)
>
> at
> com.canoo.webtest.ant.TestStepSequence.executeSteps(TestStepSequence.java:43)
>
> at
> com.canoo.webtest.ant.TestStepSequence.doExecute(TestStepSequence.java:31)
>
> at com.canoo.webtest.steps.Step.execute(Step.java:101)
>
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>
> at java.lang.reflect.Method.invoke(Method.java:585)
>
> at
> org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
>
> at org.apache.tools.ant.Task.perform(Task.java:348)
>
> at com.canoo.webtest.ant.WebtestTask.execute(WebtestTask.java:206)
>
> at
> org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
>
> [...]
>
> Caused by: java.lang.ClassCastException:
> com.gargoylesoftware.htmlunit.html.DomComment
>
> at
> com.gargoylesoftware.htmlunit.html.xpath.DocumentNavigator.getTextStringValue(DocumentNavigator.java:377)
>
> at org.jaxen.function.StringFunction.evaluate(StringFunction.java:255)
>
> at
> org.jaxen.expr.DefaultEqualityExpr.evaluateObjectObject(DefaultEqualityExpr.java:147)
>
> at
> org.jaxen.expr.DefaultEqualityExpr.evaluateSetSet(DefaultEqualityExpr.java:121)
>
> at
> org.jaxen.expr.DefaultEqualityExpr.evaluate(DefaultEqualityExpr.java:93)
>
> at org.jaxen.expr.DefaultPredicate.evaluate(DefaultPredicate.java:95)
>
> at org.jaxen.expr.PredicateSet.applyPredicate(PredicateSet.java:269)
>
> at
> org.jaxen.expr.PredicateSet.evaluatePredicates(PredicateSet.java:244)
>
> at org.jaxen.expr.DefaultNameStep.evaluate(DefaultNameStep.java:291)
>
> at
> org.jaxen.expr.DefaultLocationPath.evaluate(DefaultLocationPath.java:140)
>
> at
> org.jaxen.expr.DefaultAbsoluteLocationPath.evaluate(DefaultAbsoluteLocationPath.java:113)
>
> at org.jaxen.expr.DefaultXPathExpr.asList(DefaultXPathExpr.java:102)
>
> at org.jaxen.BaseXPath.selectNodesForContext(BaseXPath.java:674)
>
> at org.jaxen.BaseXPath.selectNodes(BaseXPath.java:213)
>
> at org.jaxen.BaseXPath.selectSingleNode(BaseXPath.java:234)
>
> at
> com.canoo.webtest.steps.verify.VerifyXPath.verifyXPath(VerifyXPath.java:89)
>
> at
> com.canoo.webtest.steps.verify.VerifyXPath.doExecute(VerifyXPath.java:73)
>
> at com.canoo.webtest.steps.Step.execute(Step.java:101)
>
> ... 60 more
>
> --- Nested Exception ---
>
> java.lang.ClassCastException: com.gargoylesoftware.htmlunit.html.DomComment
>
> at
> com.gargoylesoftware.htmlunit.html.xpath.DocumentNavigator.getTextStringValue(DocumentNavigator.java:377)
>
> at org.jaxen.function.StringFunction.evaluate(StringFunction.java:255)
>
> at
> org.jaxen.expr.DefaultEqualityExpr.evaluateObjectObject(DefaultEqualityExpr.java:147)
>
> at
> org.jaxen.expr.DefaultEqualityExpr.evaluateSetSet(DefaultEqualityExpr.java:121)
>
> at
> org.jaxen.expr.DefaultEqualityExpr.evaluate(DefaultEqualityExpr.java:93)
>
> at org.jaxen.expr.DefaultPredicate.evaluate(DefaultPredicate.java:95)
>
> at org.jaxen.expr.PredicateSet.applyPredicate(PredicateSet.java:269)
>
> at
> org.jaxen.expr.PredicateSet.evaluatePredicates(PredicateSet.java:244)
>
> at org.jaxen.expr.DefaultNameStep.evaluate(DefaultNameStep.java:291)
>
> at
> org.jaxen.expr.DefaultLocationPath.evaluate(DefaultLocationPath.java:140)
>
> at
> org.jaxen.expr.DefaultAbsoluteLocationPath.evaluate(DefaultAbsoluteLocationPath.java:113)
>
> at org.jaxen.expr.DefaultXPathExpr.asList(DefaultXPathExpr.java:102)
>
> at org.jaxen.BaseXPath.selectNodesForContext(BaseXPath.java:674)
>
> at org.jaxen.BaseXPath.selectNodes(BaseXPath.java:213)
>
> at org.jaxen.BaseXPath.selectSingleNode(BaseXPath.java:234)
>
> at
> com.canoo.webtest.steps.verify.VerifyXPath.verifyXPath(VerifyXPath.java:89)
>
> at
> com.canoo.webtest.steps.verify.VerifyXPath.doExecute(VerifyXPath.java:73)
>
> at com.canoo.webtest.steps.Step.execute(Step.java:101)
>
> at
> org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
>
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>
> at java.lang.reflect.Method.invoke(Method.java:585)
>
> at
> org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
>
> at org.apache.tools.ant.Task.perform(Task.java:348)
>
> at
> com.canoo.webtest.ant.TestStepSequence.executeSteps(TestStepSequence.java:43)
>
> at
> com.canoo.webtest.ant.TestStepSequence.doExecute(TestStepSequence.java:31)
>
> at com.canoo.webtest.steps.Step.execute(Step.java:101)
>
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>
> at java.lang.reflect.Method.invoke(Method.java:585)
>
> at
> org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
>
> at org.apache.tools.ant.Task.perform(Task.java:348)
>
> at com.canoo.webtest.ant.WebtestTask.execute(WebtestTask.java:206)
>
> at
> org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
>
> [...]
>
>
>