回答
CSS將成爲我在執行速度和可讀性/可維護性方面的選擇。此外,CSS定位器可能會在迭代環境中見證最少的變化(與更改鏈接名稱,標題等相反)。使用CSS的唯一缺點是缺少IDE內部支持來制定它們。
Here是一個偉大的職位闡明爲什麼CSS是選擇:)
Xpath一般很慢,特別是在IE中。所有瀏覽器都不支持CSS選擇器,尤其是IE瀏覽器(看到這裏的趨勢?)。通常使用名稱或ID選擇器,因爲這些名稱或ID選擇器速度較快,並且使用xpath選擇器進行備份,但不能。編寫好的xpath選擇器是一種技巧,如果你注意到它會導致你的測試開始放慢速度,你可能會返回並優化選擇器。
的順序,你應該嘗試挑定位器是按以下順序
- ID
- 名稱
- CSS的定位
- XPATH
ID和Name將有助於創建良好的可維護測試,因爲可以在不中斷測試的情況下更改元素的類型。例如,如果你點擊了一個<input type=button id='foo'>
並得到了改變,以<div id='foo'>Bar</div>
那麼你的測試將仍然工作,只要接下來發生的事情仍然是相同的順序
而其他三個答案thusfar所有提供方面的重要信息你的問題,還有一個資源,你可能會發現有幫助。我最近編寫了一本食譜和比較圖表,內容涵蓋了Selenium支持的所有定位技術:這個快速參考字面上可以讓你看到「...使用XPath,CSS,標識符之間的差異」等等。請參閱Simple-Talk.com上的XPath, CSS, DOM and Selenium: The Rosetta Stone。
嗨剛剛添加更多, 1)。 ID或NAME是瀏覽器原生的,所有其他CSS,XPATH,Javascript對瀏覽器來說都是外來的(也就是說,他們必須依賴各自的引擎)。所以本土永遠是第一選擇。 2)。你不能使用CSS或XPATH的所有功能(即:不同版本的CSS或XPATH的瀏覽器支持問題)。 3)。 XPATH在IE7上存在問題。 (所以我只寫了每個元素的位置路徑) 4)。 IE7無法找到非常基本的CSS路徑有時(css = table.nav td.name),所以我不得不將其改爲javascript編碼(dom = document.findElementsByTagName('td')[0])
訂單選擇定位器應該是:
- Id:如果Web應用程序遵循W3C準則,您將只能獲得頁面上的單個元素。因此,搜索元素的速度將是最高的。
- 名稱
- 鏈接文本
- 部分鏈接文本
- 標籤名稱
- 類名
- CSS選擇器
- Xpath的
- 1. Selenium RC Server:userContentTransformation選項支持哪些正則表達式選項?
- 2. Python爲Selenium設置Firefox首選項 - 下載位置
- 3. Python Selenium設置多個Chrome首選項
- 4. 如何在Selenium RC中訪問與xpath的非首次匹配?
- 5. javascript in selenium RC
- 6. Selenium RC Referer header
- 7. Selenium RC in Hudson
- 8. 如何使用Selenium Webdriver .NET綁定來設置Chrome首選項?
- 9. 瞭解Selenium IDE和Selenium RC
- 10. Selenium RC - selenium-browserbot.js錯誤
- 11. Selenium定位器中的CSS定位器空間
- 12. XPath定位器與Selenium中的JQuery定位器
- 13. Selenium RC瀏覽器發射器列表
- 14. Selenium:搜索Java中的定位器子項
- 15. Android中首選項活動中的數字首選項
- 16. Java首選項管理器
- 17. Android自定義首選項
- 18. 首選項被鎖定
- 19. Jacoco w/Jetty + Selenium RC
- 20. chooseCancelOnNextConcirmation alternative in Selenium RC
- 21. Selenium RC WaitForPageToLoad掛起
- 22. Selenium RC Jmeter C#LoadTesting
- 23. Selenium RC和Internet Explorer
- 24. Selenium RC htmlsuite錯誤
- 25. Selenium RC(java)+ Safari3 + XP
- 26. Selenium RC -htmlsuite錯誤
- 27. CF首選項/庫/首選項
- 28. selenium:使用xpath定位器的自定義定位器
- 29. 設置Chrome首選項,在Python中使用Selenium Webdriver
- 30. Android:如何更改首選項中的選定項目顏色?
「唯一的缺點使用CSS是缺乏在IDE內部爲內部支持提供支持。「 - 我認爲Selenium IDE 1.11支持CSS :)。開心測試 – 2011-06-07 13:27:06
謝謝。顯然我需要升級;) – rs79 2011-06-07 13:32:53
TBH我不會使用IDE來創建定位器,但它們通常都很糟糕......我通常使用幫助器方法在Java中創建一個框架,並使用像螢火蟲這樣的工具手動編寫所有選擇器或谷歌瀏覽器webtools – Tnem 2011-06-07 13:34:55