2012-02-21 2 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"이있는 모든 요소를 ​​반환해야합니다.

var username = Browser.TryFind(By.CssSelector("[id$='UserName']")); 

어떤 일치 : 가능

+0

참조가 필요하면 [Selectors spec] (http://www.w3.org/TR/css3-selectors)을 방문하십시오. – BoltClock

답변

2

,

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

다른 옵션은 CSS 선택기를 사용하는 것입니다 요소 ID는 UserName으로 끝납니다.

+0

XPath를 사용하는 것이 좋습니다. @ 올리버, "지금 태그의 유형에만 한정되어 있습니다"라는 의미는 무엇입니까? –

+0

XPath를 보면 UserName이 포함 된 이름으로 모든 입력 태그를 선택하고 있습니다. 이렇게하기 전에 UserName이라는 이름의 HTML 요소가 작동합니다. 죄송합니다. 확실하지 않았습니다. – Oliver

+2

@Oliver :'input'을'*'로 쉽게 대체 할 수 있습니까? – BoltClock

관련 문제