8

我想存储一个id的一部分,把剩下的扔掉。例如,我有一个 id 为“element-12345”的 html 元素。我想扔掉'元素-'并保留'12345'。我怎样才能做到这一点?

我可以捕获并回显该值,如下所示:

| 商店属性 | //pathToMyElement@id | 我的身份证 |
| 回声 | ${!-myId-!} | |

当我运行测试时,我得到如下信息:

| 商店属性 | //pathToMyElement@id | 我的身份证 |
| 回声 | ${myId} | 元素12345 |

我正在使用 Selenium IDE 进行录制,并使用 Selenium Bridge 夹具将测试复制到 Fitnesse 中。问题是我每次运行测试时都使用一个干净的数据库,我需要在整个测试过程中捕获和使用随机 id。

4

3 回答 3

11

解决方案是使用 JavaScriptreplace()函数storeEval

| storeAttribute | //pathToMyElement@id                                   | elementID |
| storeEval      | '${elementID}'.replace("element-", "")                 | myID      |

现在,如果我回myID显,我只会得到 ID:

| echo | ${myID} | 12345 |
于 2009-03-05T18:02:20.643 回答
2

/元素-(\d+)/i

这是一个正则表达式,它将捕获破折号后的数字。

于 2008-12-31T17:44:06.517 回答
2

像这样的东西可能会起作用:

| storeAttribute | fn:replace(//pathToMyElement@id,"^element-","") | myId |

执行正则表达式需要 XPath 2.0 - 不确定 Selenium 实现了哪个版本。

于 2009-01-30T23:33:39.307 回答