从表格行中的链接获取字符

时间:2015-09-28 09:20:40

标签: selenium selenium-ide

我正在使用Selenium IDE

我在我的href中有一个链接,如:

<table><tr><td>
<a href="#/FR/iWeb/Colis?c=9L07186140438-20150330" target="_blank">9L07186140438</a>
</td></tr></table>

我想从href=开始获取c=的最新字符,在我们的示例中,它将是9L07186140438-20150330

我知道您可以使用storeText,但我不知道如何在我的情况下执行分割数据,存储正确的信息以使用它们。 有没有人,有我可以尝试的链接或解决方案?

1 个答案:

答案 0 :(得分:4)

对于这个场景,我会使用StoreAttribute来获取href,但这需要完整的东西。如果您要存储的部分之前的部分在所有链接中都是一致的,那么可以使用正则表达式来区分您需要的部分。 (或者即使c =位是一致的,因为我使用的正则表达式只查找=,而不是你需要的完整href)

所以Selenium测试看起来像这样

<tr>
    <td>storeAttribute</td>
    <td>css=td>a@href</td>
    <td>href</td>
</tr>
<tr>
    <td>echo</td>
    <td>${href}</td>
    <td></td>
</tr>
<tr>
    <td>storeEval</td>
    <td>storedVars['href'].match(/[^=]+$/)</td>
    <td>url</td>
</tr>
<tr>
    <td>echo</td>
    <td>${url}</td>
    <td></td>
</tr>

哪能满足您的需求。记录输出

[info] Playing test case Untitled
[info] Executing: |storeAttribute | css=td>a@href | href |
[info] Executing: |echo | ${href} | |
[info] echo: #/FR/iWeb/Colis?c=9L07186140438-20150330
[info] Executing: |storeEval | storedVars['href'].match(/[^=]+$/) | url |
[info] script is: storedVars['href'].match(/[^=]+$/)
[info] Executing: |echo | ${url} | |
[info] echo: 9L07186140438-20150330
[info] Test case passed 

有关正则表达式如何细分的详细信息,请查看here