如何捕获id的一部分?

时间:2008-12-31 00:08:39

标签: regex xpath selenium fitnesse selenium-fitnesse-bridge

我正在尝试捕获将随机生成的元素的id。我可以像这样成功捕获我的元素id的值......

| storeAttribute | //div[1]@id | variableName |

现在我的变量将是......

divElement-12345

我想删除'divElement-',以便我留下的变量是'12345',这样我以后可以使用它来选择与它相关的'form-12345'元素......就像这样:< / p>

| type | //tr[@id='form-${variableName}']/td/form/fieldset/p[1]/input | Type this |

我怎么能够做到这一点?

2 个答案:

答案 0 :(得分:4)

Selenium,XPath和CSS Selector有两个选项。我已经读过CSS Selector更适合在FireFox和IE中进行测试。 使用最新版本的Selenium IDE(3/5/2009)我成功使用了storeEval来评估Javascript表达式,使您可以访问javascript字符串函数。

的XPath:

storeAttribute | //div[1]@id                                            | divID
storeEval      | '${divID}'.replace("divElement-", "")                  | number
type           | //tr[@id='form-${number}']/td/form/fieldset/p[1]/input | Type this

CSS选择器:

storeAttribute | css=div[1]@id                                                     | divID
storeEval      | '${divID}'.replace("divElement-", "")                             | number
type           | css=tr[id='form-${number}'] > td > form > fieldset > p[1] > input | Type this

答案 1 :(得分:1)

XPATH中有许多功能可以解决您的问题。假设“divElement-”是一个不会改变的常量,并且你使用的是XPath 2.0,我建议:

子 - 后(DIV [1] / @ ID /文本(), “的DivElement - ”)