Have you tried to call it outside of the loop:

<storeXPath
  description="Store portlet name"
  xpath="//[EMAIL PROTECTED]'add_w1_sel']/option[0 + 1]"
  property="portletName"
/>

Marc.

Colin O'Brien wrote:
Hi Marc,

Yup, I've plugged both versions of my xpath into XPE and both return the
expected node successfully...

Cheers,
Colin.

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Behalf Of Marc Guillemot
Sent: 02 December 2005 14:41
To: [email protected]
Subject: Re: [Webtest] XPath support...


Hi Colin,

I use steps like
<click xpath="//tr[#{count}+1]//a" .../>

in my webtests therefore I guess that your xpath is syntactically
correct. Have you tried to test it on the page code in XPE or in an
other xpath tool?

Marc.

Colin O'Brien wrote:

Hi Marc et al,

Can you confirm if either of the following xpath syntax is supported in
webtest...

xpath="//[EMAIL PROTECTED]'add_w1_sel']/option[n + 1]"
or
xpath="//[EMAIL PROTECTED]'add_w1_sel']/option[sum(n + 1)]"

where 'n' is an integer

What I'm trying to achieve is count the number of options in a dropdown
list, select each option in turn and click an associated 'Add' button.

XPath Explorer handles both without a problem

Webtest Steps:
           <steps>
               &Login;
               &JS_on;
               &LogToHome;
               <storeXPath
                   description="Count the number of portlet options"
                   xpath="count(//[EMAIL PROTECTED]'add_w1_sel']/option)"
                   property="portletCount"
               />
               <repeat description="Add all avaialble portlets"
count="#{portletCount}">
                   <storeXPath
                       description="Store portlet name"


xpath="//[EMAIL PROTECTED]'add_w1_sel']/option[#{count}

+ 1]"
                       property="portletName"
                   />
                   <setSelectField
                       description="Select Portlet:#{portletName} from
dropdown list"
                       name="add_w1_sel"
                       optionIndex="#{count}"
                   />
                   <clickButton
                       description="Click add to insert
Portlet:#{portletName} to dashboard"
                       label="Add"
                   />
               </repeat>
           </steps

HTML:
<select name="add_w1_sel" class="layout-add-select-style">
<option value=""></option>
<option value="74">Breadcrumb</option>
<option value="11">Directory</option>
<option value="20">Document Library</option>
<option value="31">Image Gallery</option>
<option value="15">Journal</option>
<option value="63">Journal Articles</option>
<option value="57">Journal Content</option>
<option value="2">My Account</option>
<option value="72">Navigation</option>
<option value="76">Portlet Aggregator</option>
<option value="alarms_WAR_ro_portlets">RO Alarms</option>
<option value="datasource_viewer_WAR_ro_portlets">RO Data Source
Summary</option>
<option value="fileaudit_viewer_WAR_ro_portlets">RO File Audit
Viewer</option>
<option value="kpilist_WAR_ro_portlets">RO KPI Portlet</option>
<option value="volumeprofilechart_WAR_ro_portlets">RO Profile

Chart</option>

<option value="reconchart_WAR_ro_portlets">RO Reconciliation

Chart</option>

<option value="revenuestreamchart_WAR_ro_portlets">RO Revenuestream
Chart</option>
<option value="status_WAR_ro_portlets">RO System Status</option>
<option value="66">Web Proxy</option>
</select>

Webtest reports the following errors:
********************
[testSpec]  INFO (com.canoo.webtest.steps.Step) - Message was: No match

for

xpath expression <//[EMAIL PROTECTED]'add_w1_sel']/option[0 + 1]>
********************
********************
[testSpec]  INFO (com.canoo.webtest.steps.Step) - Exception thrown from
this cl
ass: org.jaxen.FunctionCallException
[testSpec]  INFO (com.canoo.webtest.steps.Step) - Message was: The

argument

to
the sum function must be a node-set
[testSpec] ERROR (com.canoo.webtest.steps.Step) - Cannot handle

unexpected

exce
ption in step StoreXPath at D:\canoo\UseCases\ROCDR_TC1721_v4.0.xml:41:
with (p
roperty="portletName", description="Store portlet name",
xpath="//[EMAIL PROTECTED]'
add_w1_sel']/option[sum(0 + 1)]", stepType="storeXPath")
[testSpec] org.jaxen.FunctionCallException: The argument to the sum
function mu
st be a node-set
[testSpec]     at
org.jaxen.FunctionCallException.fillInStackTrace(FunctionCall
Exception.java:124)
[testSpec]     at java.lang.Throwable.<init>(Throwable.java:195)
[testSpec]     at java.lang.Exception.<init>(Exception.java:41)
[testSpec]     at
org.jaxen.saxpath.SAXPathException.<init>(SAXPathException.ja
va:83)
[testSpec]     at org.jaxen.JaxenException.<init>(JaxenException.java:82)
[testSpec]     at
org.jaxen.FunctionCallException.<init>(FunctionCallException.
java:82)
[testSpec]     at
org.jaxen.function.SumFunction.evaluate(SumFunction.java:114)

[testSpec]     at

org.jaxen.function.SumFunction.call(SumFunction.java:87)

[testSpec]     at
org.jaxen.expr.DefaultFunctionCallExpr.evaluate(DefaultFuncti
onCallExpr.java:182)
[testSpec]     at
org.jaxen.expr.DefaultPredicate.evaluate(DefaultPredicate.jav
a:105)
[testSpec]     at
org.jaxen.expr.PredicateSet.applyPredicate(PredicateSet.java:
176)
[testSpec]     at
org.jaxen.expr.PredicateSet.evaluatePredicates(PredicateSet.j
ava:151)
[testSpec]     at
org.jaxen.expr.DefaultNameStep.evaluate(DefaultNameStep.java:
220)
[testSpec]     at
org.jaxen.expr.DefaultLocationPath.evaluate(DefaultLocationPa
th.java:151)
[testSpec]     at
org.jaxen.expr.DefaultAbsoluteLocationPath.evaluate(DefaultAb
soluteLocationPath.java:117)
[testSpec]     at
org.jaxen.expr.DefaultXPathExpr.asList(DefaultXPathExpr.java:
108)
[testSpec]     at
org.jaxen.BaseXPath.selectNodesForContext(BaseXPath.java:692)

[testSpec]     at
org.jaxen.BaseXPath.selectSingleNodeForContext(BaseXPath.java
:714)
[testSpec]     at org.jaxen.BaseXPath.stringValueOf(BaseXPath.java:287)
********************

Kind Regards,
Colin.



_______________________________________________
WebTest mailing list
[email protected]
http://lists.canoo.com/mailman/listinfo/webtest



_______________________________________________
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