2014-10-06 6 views
0

vs-2012 (4.5) C#에서 작업중인 것처럼 Watun을 사용하고 있습니다.Watlow에서 SelectList 변경 이벤트를 내 값으로 변경

목표는 SelectList -> change 이벤트를 내 값으로 만드는 것입니다. 내가 사용하는 웹 페이지에서 109110,111 ... 값의 SelectList가 있습니다.이 SelectList에서 이벤트 변경을해야하지만 2014 값으로 변경해야합니다. F12-FireBug (콘솔)를 누르고 자기 자신에 의해 값을 변경 한 다음 목록에서 선택하면 모든 것이 정상적으로 작동하지만 코드에서이 작업을 수행해야합니다.

내가 뭘하려 여기

HTML 코드 여기

<select name="endYear" class="dateText" onchange="setupDays('end'); 
verifyDate('end'); evaluateDateRange();"> 
<option value="109">109</option> 
<option value="110">110</option> 
<option value="111">111</option> 
<option value="112">112</option> 
<option value="113">113</option> 
<option value="114">114</option> 
</select> 

,하지만 난 얻을 오류 '$' is undefined

browser.DomContainer.Eval("$('#startYear select option').attr('selected', '2014');"); 

하고 심지어 추적 할 수없는 가망 경우이

SelectList ddlStartYear = PopupDateFrame.SelectList(Find.ByName("startYear")); 
    string js = string.Format("$('#startYear select option').attr('selected', '2014').change();", ddlStartYear.Id); 
    browser.Eval(js); 

어느 한 아십니까 그리고 만약 그렇다면 어떻게? 목록 옵션에 요소를 추가 할 수

답변

0

코드는 다음과 같습니다

listReference.FireEvent("onchange"); 

이벤트가 실행되는 이벤트를 해고 할 수있는 다른 방법 :

string js = ""; 
js = js + "var theSelectList = document.getElementById('endYear'); "; 
js = js + " AddSelectOption(theSelectList, \"Some Description\", \"2014\", true);"; 
js = js + " function AddSelectOption(selectObj, text, value, isSelected) "; 
js = js + "{"; 
js = js + " if (selectObj != null && selectObj.options != null)"; 
js = js + "{"; 
js = js + " selectObj.options[selectObj.options.length] = new Option(text, value, false, isSelected);"; 
js = js + "}}"; 

browser.Eval(js); 

프로그래밍 onchange를 이벤트를 실행하려면 해고되면 웹 페이지의 소스를 살펴 보는 것이고 js 함수에 대한 호출을 발견하면 요소의 값을 설정 한 다음 Watin에서 필요한 매개 변수를 사용하여 해당 함수를 호출하고 이벤트를 발생시키지 않아도됩니다. 어떤 경우에는 이것이 작동 할 수도 있고, 그렇지 않을 수도 있지만, 이것을 지적하는 것이 가치가 있습니다.

browser.Eval("setupDays('end');verifyDate('end');evaluateDateRange();"); 
: 당신이 좋아, 수동 onchange를 이벤트라는 세 가지 함수를 호출 한 다음 요소의 값을 설정할 수 있습니다이 특정 예에서

처럼