我想存储一部分内容,然后将其余部分丢弃。例如,我有一个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。
答案 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实现的版本。