2012-08-16 56 views
1

我想知道處理使用機器人框架和/或硒的超長定位器的常見方法是什麼?如何處理自動化測試中的超長定位器?

我那麼久談定位器:

<input id="all00$SPWebExample1$g_bcd023df_3ba6_4f8f_bef3_164383c266aa$ctl00$$HereComesAnotherText1$rblFoundIs" />

最明顯的方法是「隱藏」他們在資源文件,使他們不污染測試用例文件。我見過的另一種方法是創建一個靜態xml文件,其中包含完整的測試網站結構並解析xml文件(如果需要,我可以提供示例)。

有沒有更好的方法來做到這一點?

回答

1

如果id是自動生成的,那麼將它們存儲在像這樣的長定位器中並不是一個好主意。


相反的:

string superLongLocatorID = "all00$SPWebExample1$g_bcd023df_3ba6_4f8f_bef3_164383c266aa$ctl00$$HereComesAnotherText1$rblFoundIs" 

用途:

string xpathLocator = "//input[contains(@id, 'rblFoundIs')]" 

中的XPath版本是相當短的,並不會因爲容易破裂作爲存儲完整的ID。

如果有多個包含相同文本的輸入元素,則還有其他方法可以縮小結果範圍。

+0

我最終做了類似的建議。而不是XPath我使用的是CSS選擇器,它似乎工作得很好。 – finspin 2012-09-19 07:59:03

1

解決方案恕我直言,不使用醜陋的自動生成的ID。您的測試最終會變得脆弱,因爲如果框架更改ID生成方法,它們將全部中斷。相反,使用XPath或CSS選擇器。