2012-11-06 4 views
2

주어진 CSS 클래스가있는 모든 HTML 컨트롤을 찾아야합니다.css 클래스가있는 모든 요소를 ​​코드화 된 UI로 찾으려면 어떻게해야합니까?

var htmlControl = new HtmlControl(document); 
htmlControl.SearchProperties[HtmlControl.PropertyNames.Class] = @class; 
var uiTestControlCollection = htmlControl.FindMatchingControls(); 

클래스 이름을 사용하면 컨트롤에 CSS 클래스가 하나만있을 때 작동합니다. 요소에 두 개 이상의 CSS 클래스가 적용된 경우 하나만 CSS 클래스를 지정하여 요소를 검색 할 수 있습니까?

감사

답변

2

당신은 너무처럼 부분 일치를 수행 할 수 있습니다

htmlControl.SearchProperties.Add(HtmlControl.PropertyNames.Class, @class, PropertyExpressionOperator.Contains); 
var uiTestControlCollection = htmlControl.FindMatchingControls(); 

다시 이것의 주요 무승부는 단순한 문자열 비교 것입니다. 예를 들어, 두 컨트롤 A와 B가 있다고 상상해보십시오. A는 "Test"클래스를 갖고 B는 "testdiv topnav"클래스를가집니다. 이제 "test"에 대한 검색을 수행하면 A 및 B 컨트롤이 모두 선택됩니다. 각 컨트롤의 클래스를 돌려 컬렉션

  • 을 통해

    1. 루프 :

      는 위의 방법을 사용하여 가능한 일치로 가까운를 제공 할 수 정확히 클래스를 일치에 도우미 함수를 작성하려면
    2. 분할 공간
    3. 루프이 배열 통해 클래스가 정확히
    4. 일치하는 경우 요소를 유지 정확히 일치
    5. 각 테스트의 클래스 문자열

    참고 : 이것은 분명히 비 최적입니다. 누군가가 더 나은 해결책을 가지고 있다면 나는 완전히 귀입니다.

    건배, seb

  • 관련 문제