我們可以通過幾種方式在網站上搜索特定字段:基於CSS,名稱,ID,結構,甚至找到的任何文本。 您決定使用哪種方式?您使用什麼屬性進行硒測試?
最好的做法是什麼?
編輯:我是從開發人員的角度問: 如何編寫代碼,這將是更容易一個方法使用Selenium測試(即:能夠通過它的名字來搜索所有的)
我們可以通過幾種方式在網站上搜索特定字段:基於CSS,名稱,ID,結構,甚至找到的任何文本。 您決定使用哪種方式?您使用什麼屬性進行硒測試?
最好的做法是什麼?
編輯:我是從開發人員的角度問: 如何編寫代碼,這將是更容易一個方法使用Selenium測試(即:能夠通過它的名字來搜索所有的)
我們通常遠離xml結構,結果會產生太脆弱的測試。我們的內部組織使CSS名稱不受限制,因爲這是設計人員操縱的。你不希望你的測試中斷,因爲有人改變了從標題1到標題2的樣式。
我們選擇了一種主要基於id的解決方案。有時我們甚至用id來測試HTML,以便能夠進行硒測試。
此外,我們還尋找文本(應用文本),但國際化使這有點痛苦;我們已經讓我們的測試夾具區域知道。
如果你能記得這樣做,ID幾乎總是最好的。
我傾向於傾向於尋找'id'或'name'屬性的XPath表達式。
但是,如果您定期在IE6中執行測試,請注意使用XPath定位器表達式。在IE6中,XPath的運行速度明顯慢於後續版本或Firefox。我有一個相當大的SeleniumRC測試套件,用IE6完成需要三個小時的時間,而使用Firefox的時間只有一個小時。(所有這些時間不是由XPath引起的,但它的確有很大的貢獻)。
經過一段時間,我發現了其他選擇:創建您自己的屬性併爲Selenium IDE構建基於此屬性生成xpath的JavaScript函數。這並不難:)
它使生成和維護測試,以便更容易(的時候,突然變得跨度DIV;))
確保使用的ID在你的代碼將幫助極大!即使該元素從跨度更改爲div,該ID仍保持一致。 'name'與id類似。鏈接是體面的,但你必須觀察鏈接文本不會是可能改變的東西。
這裏是我的定位器的排名,從最好到不如: ID 名 鏈接 CSS UI 的XPath