2013-01-14 5 views
2

내가 Watin을 배우고 내가 HTML 코드의 재미있는 조각을 건너 온 : 나는 ID 또는 클래스에 의해 입력을 선택 익숙해로요소에 값을 설정하는 방법은 무엇입니까?

<label class="age_label years_old" for="total_age"> 
<b>34</b> 
<span class="placeholder">How old are you?</span> 
<span class="years_old">years old</span> 
<span class="years_young">years young</span> 
</label> 

을 내가 34에 도착합니까? 임은 완전히 잃었다. 그러나 여기에 그것이 입력이 아닙니다. 그것의 단지 html 태그.

나는 * watin을 사용하여 다른 번호 34,하지만 어떻게 교체 SET/* 를 원하십니까? 이 페이지의 유일한 <b> 태그 인 경우

답변

0

내가

var result = browserInstance.LabelField(lf => lf.GetAttributeValue("class").Contains("age_label years_old")).Children().First().Text; 
+0

답장을 보내 주셔서 감사합니다. 번호 34를 다른 번호로 바꾸고 싶다는 점을 분명히 알지 못해 죄송합니다. –

+1

. 유닛 테스트 라이브러리입니다 .replace가 없다면 아마 운이 좋을 것입니다. 그것이 조작이라면 더 나은 선택이 있습니다. –

0

같은 것을 상상할 것, 다음이 작동 할 수 있습니다 :

IE.ElementWithTag("b", Find.First()); 

행운을 빕니다.

0

WatiN에는 사용자가 묻는 태그 값에 대한 설정자가 없습니다. 그것은 쉽게 자바 스크립트를 통해 할 수 있습니다. JS 요소를 가져 오기 위해 JS 호출을 WatiN.GetJavascriptElementReference와 결합하면 매우 간단하게하려고합니다. (나는 이것을 할 수있는 순수한 JS 방법이있을 것이라고 확신하지만, 요즘 JS보다는 WatiN에서 더 낫다.) 첫 번째 대담한 태그를 찾는 것이 더 나은 접근 방식이 될 수 있다면 매우 희망적이다. 요소 위치에 대해 취해야합니다.

테스트를 위해이 "setter"작업을 사용하는 경우 사용자가 할 수없는 작업을 변경하기 때문에 불쾌한 냄새가납니다. 예상대로

영업 이익의 HTML 테스트보다도

예제 코드

var jsRef = myIE.ElementsWithTag("b")[0].GetJavascriptElementReference(); 
myIE.Eval(string.Format("{0}.innerHTML = 'fred'", jsRef)); 

, Watin 2.1, IE9, Win7-64 =이> 작동합니다.

관련 문제