【问题标题】:Get the characters from a link in a table row从表格行中的链接获取字符
【发布时间】:2015-09-28 09:20:40
【问题描述】:
我正在使用 Selenium IDE
我在我的 href 中有一个链接,表格如下:
<table><tr><td>
<a href="#/FR/iWeb/Colis?c=9L07186140438-20150330" target="_blank">9L07186140438</a>
</td></tr></table>
我想从c= 开始获取我的href= 的最新字符,在我们的示例中为9L07186140438-20150330
我知道你可以使用 storeText,但我不知道如何在我的情况下实现拆分数据,存储正确的信息以使用它们。
谁有我可以尝试的链接或解决方案?
【问题讨论】:
标签:
selenium
selenium-ide
【解决方案1】:
对于这个场景,我会使用 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