2017-03-20 1 views
1

을 watin으로 업데이트되지 않습니다. 나는 각 모델 값을 업데이트하지 않습니다 TextField.TypeText("some string") 기능에 문제로 실행했다. 다음과 같이각도 모델은 내 <code>angular</code> 응용 프로그램에 대한 브라우저 테스트를 자동화 할 수 <code>watin</code> 및 <code>specflow</code>을 사용하고

샘플 코드는 다음과 같습니다

public void updateTextField(string value) 
    { 
     GetTextField.TypeText(value); 

     UpdateButton.Click(); 
    } 

    public TextField GetTextField 
    { 
     get { return TextField(Find.ById(_textFieldId)); } 
    } 

    public Button UpdateButton 
    { 
     get { return Button(Find.ById(_updateButtonId)); } 
    } 

나는 각 모델이 업데이트되지 않습니다 그러나 텍스트가 브라우저에 입력되는 텍스트 필드에 입력 한 값이 무시됩니다 볼 수 있습니다.

은 이미 시도하고 입력 필드가 변경된 표시하기 위해 강제로
GetTextField.Change(); 
GetTextField.TriggerEvent("onchange"); 

추가 노력했다. 선택 드롭 다운에서도 비슷한 문제가있었습니다. 그러나 라디오 버튼이 정상적으로 작동하는 것 같습니다.

도움이 될 것입니다. 감사.

답변

1

나는 TextField::TypeText() 함수가 요소에서 change 이벤트를 트리거하지 않으므로 각형 모달이 업데이트되지 않는다는 것을 알게되었습니다. 나는 그 일을 할 것입니다 텍스트 필드 방식의 확장을 썼다. 다음과 같이

/// <summary> 
    /// Type text and trigger change in the input field 
    /// </summary> 
    /// <param name="textField"></param> 
    /// <param name="text"></param> 
    public static void SendKeys(this TextField textField, string text) 
    { 
     textField.TypeText(text); 
     TriggerChange(textField); 
    } 

    /// <summary> 
    /// Trigger change on the input element 
    /// </summary> 
    /// <param name="element">Element to trigger change on</param> 
    private static void TriggerChange(Element element) 
    { 
     string script = String.Format(
      "$('[name={1}]').change()", 
      element.Name 
     ); 

     element.DomContainer.RunScript(script); 
    } 

그리고 나는 그것을 사용하고 있습니다 :

public void updateTextField(string value) 
{ 
    GetTextField.SendKeys(value); 

    UpdateButton.Click(); 
} 
관련 문제