selenium IDE - 如何在链接中存储文本只是id?

时间:2013-06-05 17:34:30

标签: selenium selenium-ide

如何在索引页面上创建一个具有我记录之一的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

2 个答案:

答案 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