2013-09-03 2 views
0

ng-model = 'obj.values.x.value'로 백업 된 DOM 입력 요소 obj.values.x.value의 값은 "foo"입니다.각도 + 셀렌 설정 모델 지원 값

셀렌에서 코드를 실행하면 필드에 "foo"가 표시됩니다.
필드를 빈 문자열로 설정하려고 시도합니다. element.clear() element.getAttribute("value")은 여전히 ​​"foo"를 반환합니다. 내가 DOM 요소를 가져온 다음 전화를 JQuery와 사용하는 경우

$(element).focus(); $(element).val('');$(element).blur(); element.getAttribute("value")를 호출하면 여전히 "foo는"반환

각도가 ng-model을 obj.values.x.value으로 묶었다는 것을 모른 채, 모델의 기본값이 변경되도록 Selenium에서 요소의 값을 설정합니까?

추가 테스트를 통해이 오류는 모델에 제공된 기본값이 있고 빈 문자열로 값을 설정하려고 할 때만 발생한다는 것을 보여줍니다.

+0

AngularJS가 입력 요소에 대한 변경 사항을 가로 채고 셀레늄이 프로세스에서 다른 지점에서 같지만 수행되는 것으로 보입니다. null 길이 문자열을 전달할 때 AngularJS 변경 내용을 볼 생각하지 않습니다. AngularJS에 값이 변경되어 Model 값이 변경되도록 알려줄 수있는 방법이 필요합니다. – cWarren

답변

0

나는이 문제가 당신이 값을 지우는 것과 관련이 있다고 생각한다. JQuery와 함께 다음을 시도해보십시오

$(element).val(''); 
셀레늄하지 너무 잘 알고

하지만, jQuery를 empty removes child nodes, 입력이 아닌 내용을.

+0

이 해결책은 작동하지 않습니다. 이 문제는 AngularJS가 모델의 값을 빈 문자열로 설정하는 대신 모델에있는 값으로 다시 설정하는 것으로 보입니다. – cWarren

0

외부에서 Angular 앱의 모델 값을 변경할 때마다 그 점을 소화하지 않기 때문에 생각합니다. 우리는 $ scope.apply();를 사용해야합니다. 나는 그것이 의미가 있기를 바랍니다.