2012-02-21 25 views
0

我試圖在使用ASP.NET創建的網頁上查找元素。問題是之前的4.0版本的ASP.NET爲控制一些長期名稱,以便找到一個簡單的「用戶名」輸入字段我需要使用它的全名:使用ASP.NET控件的Selenium WebDriver

var elementName = "LoginControl1_uxLoginControl_UserName"; 
var username = Browser.TryFind(By.Name(elementName)); 

,它似乎是工作,但我正在尋找更簡單的東西。使用部分元素名稱或部分ID可以做同樣的事情嗎?例如

var username = Browser.TryFind(By.CssSelector("UserName")); 

這應該返回其名稱/ ids(或甚至第一個元素)中具有「UserName」的所有元素。

+0

如果您需要參考,請訪問[選擇器規格](http://www.w3.org/TR/css3-selectors)。 – BoltClock 2012-02-21 17:26:19

回答

2

爲此,您可以使用XPath,

var username = Browser.TryFind(By.Xpath("//*[contains(@name , 'UserName')] ")); 

的另一種選擇是使用CSS選擇器如果可能的話

+0

使用XPath絕對是一個不錯的選擇。 @Oliver,你的意思是「你現在只限於標籤類型」? – 2012-02-21 17:30:34

+0

如果您查看XPath,現在選擇包含用戶名的所有輸入標籤。在此之前,他們會使用名稱爲UserName的任何HTML元素。對不起,不清楚 – Oliver 2012-02-21 17:36:58

+2

@Oliver:你可以很容易用'*'替換'input',不是嗎? – BoltClock 2012-02-21 17:37:35