2008-12-31 50 views
1

我試圖捕獲將被隨機生成的元素的id。我可以成功地捕捉到這樣的我的元素id的值...如何僅捕獲部分ID?

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

現在我的變量將是這樣......

divElement-12345 

我想刪除「divElement-」,這樣的可變我留下的是「12345」,這樣我以後可以用它來選擇與之相關的「形式-12345」元素......這樣的事情:

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

我如何能夠做到這一點?

回答

3

在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 
+0

作品完美!謝謝!!! – Andrew 2009-03-05 17:25:23

1

XPATH中有很多函數可以解決您的問題。假設「divElement-」是一個常數,不會改變,並且您使用XPath 2.0,我會建議:

substring-after(div [1]/@ id/text(),「divElement-」)

+0

我想這是我能想到的每一個變化,但我不能得到這個工作。我不認爲Selenium支持XPath 2.0。 =/ – Andrew 2009-02-23 18:37:14