如何在索引页面上创建一个具有我记录之一的id的变量?
我可以使用xpath来获取我想要的锚点:
storeText
//table[@id='districts']//tr/td/a[text()='Fairview Union']
id_of_another_district
但是获得了链接名称。我想要记录该记录,即在我的原始源代码中:
<tr>
<td>
<a href="/districts/31">Fairview Union</a>
<span class='small'><a href="/users/change_district/31">(Select)</a></span>
</td>
<td></td>
<td></td>
<td></td>
<td class='rightalign'>01/09/2012</td>
<td></td>
<td><a href="/districts/31/overview" class="report_link right"></a></td>
<td><a href="/districts/31" class="deleteicon" data-confirm="Are you sure you want to delete all data and schedules for Fairview Union?" data-method="delete" rel="nofollow" title="Delete Fairview Union"><img alt="Delete" src="/assets/icons/delete-a77f3c3c125b0817085648f284c98938.png" /></a></td>
</tr>
我希望获得并存储在selenium中的变量中的是记录号31
答案 0 :(得分:3)
使用'store'命令,您可以在'target'列中执行javascript代码...
store | javascript{...} | myVar
...
所在的位置,用你需要的js替换它来返回id。
[迈克尔编辑] 我最终使用了:
storeAttribute | //*[@class='small']/a[text()='(Select)']/@href | hrefAttr
store | javascript{storedVars['hrefAttr'].replace(/.*\//,'')} | myVar
echo | ${myVar}
myVar现在有ID,我可以做以下事情:
open
/users/change_district/${id_of_another_district}
答案 1 :(得分:0)
sircapsalot(Michael Durrant编辑)的答案还可以,但是我的环境有点不同,关于如何执行javascript:不是用javascript {...}所以,在我的情况下它看起来像这样它工作正常:
<tr>
<td>storeAttribute</td>
<td>//html/body/table/tbody/tr[3]/a@href</td>
<td>hrefAttr</td>
</tr>
<tr>
<td>storeEval</td>
<td>storedVars['hrefAttr'].replace(/.*=/,'')</td>
<td>transportIdVar</td>
</tr>
<tr>
<td>echo</td>
<td>${transportIdVar}</td>
<td></td>
</tr>
我案例中的href看起来像这样:
http://example/local/IntegrationPick?partyId=8080595