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

有帮助吗?

解决方案

解决方案是将JavaScript replace()函数与 storeEval 一起使用:

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

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

| echo | ${myID} | 12345 |

其他提示

/元素 - (\ d +)/ I

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

像这样的可能会工作:

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top