2008-12-31 39 views
2

我的元素的xpath變得非常難以閱讀。Selenium:是否可以將xpath與變量連接起來?

// div [@ id ='main_content']/div [2]/div [2]/div [2]/div [4]/table/tbody/tr [2]/td/form/fieldset/p [1] /輸入

這將是很好,如果我能大部分的存儲作爲一個變量並在以後使用它像這樣:

| assertElementPresent | $ {myForm}。/fieldset/p [1]/input |

是這樣的可能嗎?這將使我的測試更容易閱讀!

回答

5

真的應該將你的硒espressions固定在元素的ID元素上。在2個月內,沒有人會最清楚xpath指向什麼,特別是如果測試在你需要查明的時候中斷。爲了簡化測試,我們經常爲元素添加id。我們已經學會了接受我們以特殊的方式編寫Java代碼以使其可測試,並且我認爲HTML也可以。

+0

我完全同意你的看法。我給出的例子可能不是最好的證明爲什麼我試圖完成這一點。我試圖這樣做的原因是因爲元素ID是隨機生成的,所以我不知道它們是什麼。 – Andrew 2008-12-31 21:23:05

1

你可以這樣寫:

store | //div[@id='main_content']/div[2]/div[2]/div[2]/div[4]/table/tbody/tr[2]/td/form | myForm 
assertElementPresent | xpath=${myForm}/fieldset/p[1]/input 

正如Krosenvold說,然而,長期的XPath可以是相當脆弱的。如果您擔心代碼中的可讀性,並且希望將所有定位器放在可以進行級聯更改的文件中,則可能需要考慮使用UI元素映射。

相關問題