2011-03-15 34 views

回答

2

在我看來,最準確的方式是XPath,因爲您可以使用XPath來描述DOM中某個元素的確切位置,但是有些情況下CSS定位器的工作效果要好於XPath。

使用硒的ID定位器是最簡單的,但除非你正在尋找的元素有一個ID不總是有用的。

使用XPath的最大不利之處是Selenium RC和帶有糟糕的JavaScript渲染引擎(Think IE6/IE7)的瀏覽器的性能。相當一部分工作是試圖糾正這一點,所以如果你使用格式良好的XPath只搜索DOM的特定部分,這個問題應該是最小的。 Selenium webdriver實現速度更快。

總結真的沒有人會回答它取決於你想要的定位器,以及你正在測試的瀏覽器。我個人在99%的實例中使用XPath。

我個人使用XPath幾乎只用偶爾的CSS定位器。

1

CSS選擇器速度更快但並非總是可用;您始終可以依賴XPath,但可能會影響性能。

1

Xpath是我用過的方式。如果你的節點有唯一的id,它將會有所幫助。

1

查找元素的最佳和最快的方法是通過id。在許多瀏覽器中,通過id查找元素的時間是線性的或者甚至是不變的。非常快。

例如,給定一個元素定義爲:

<input type="text" name="passwd" id="passwd-id" /> 

你會發現它是這樣的:

selenium.type("passwd-id", "test"); 

或者,如果你使用的API的webdriver:

element = driver.findElement(By.id("passwd-id")); 

如果網頁上的元素沒有ID,請添加它們!或者要求開發者添加它們!

查找元素的下一個最佳方法是名稱。這很快,特別是如果該名稱在頁面上是唯一的。

例如:

selenium.type("passwd", "test"); 

或者,如果你使用的API的webdriver:

element = driver.findElement(By.name("passwd")); 

找到一個元素是使用CSS選擇器的第三條道路。現代瀏覽器非常擅長以這種方式定位元素。

查找元素的最糟糕方法是使用xpath。 xpath很慢且很脆弱,很難閱讀。

西蒙·斯圖爾特的主要貢獻者硒,回答了這個問題在這裏: http://www.youtube.com/watch?v=oX-0Mt5zju0&feature=related 找時間戳39:00

還有良好的信息在這裏: http://seleniumhq.org/docs/02_selenium_ide.html#locating-elements

3

X-Paths確實是準確的。但是,它們也非常脆弱。任何改變移動網站的網站都有可能破壞你的測試。 ID是迄今爲止最脆弱的,因爲如果您對a的更改無關緊要,您的測試總能找到它。

相關問題