正则表达式如何在硒中起作用?

时间:2008-12-31 17:30:34

标签: regex selenium fitnesse selenium-fitnesse-bridge

我想存储一部分内容,然后将其余部分丢弃。例如,我有一个id为'element-12345'的html元素。我想扔出'element-'并保留'12345'。我怎么能做到这一点?

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

| storeAttribute | //pathToMyElement@id | myId |
| echo | ${!-myId-!} | |

当我进行测试时,我会得到这样的结果:

| storeAttribute | //pathToMyElement@id | myId |
| echo | ${myId} | element-12345 |

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

3 个答案:

答案 0 :(得分:11)

解决方案是将JavaScript replace()函数与storeEval

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

现在如果我回复myID我只得到ID:

| echo | ${myID} | 12345 |

答案 1 :(得分:2)

/元素 - (\ d +)/ I

这是一个正则表达式,可以捕捉破折号后的数字。

答案 2 :(得分:2)

像这样的可能会工作:

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

要做正则表达式需要XPath 2.0 - 不确定Selenium实现的版本。