2016-06-20 4 views
4

에서 작업을 수행 할 때 "분명히"이 같은 요소의 "SendKeys 매크로"와 같은 체인 동작 가능하다 체인 반영하는 방법 :각도기의 (ControlFlow) (WebDriver) 각도기 시험에서 타이프 라이터

element(by.id('myId')).clear().sendKeys('123456789') 

I을 그것의 조밀 한 작풍을 좋아하십시오. 그런데 왜 작동합니까? 내가 타이프 라이터 (에 1.8.x)로 컴파일 할 때 webdriver.Element.clear()의 API 문서 도구 명확의 반환 형식()에 따르면

webdriver.promise.Promise.<void>

이며, 컴파일러는 PromisesendKeys()라는 프로퍼티가 없음을 뿌려줍니다. 그리고 저는 그것이 사실이라고 생각합니다.

나는 런타임시 WebDriver ControlFlow Magic으로 인해 작동한다고 생각합니다.

각도기의 TypeScript Declaration File을 어떻게 확장하여이 ControlFlow-Magic을 반영하고 내 TypeScript 컴파일러를 행복하게 만들 수 있습니까?

(<any> someInput.clear()).sendKeys() 

미운하지만, TS 불만없이 작동 :

+1

음, 올바른 반환 값은 최근에 명시 적으로 체인 목적으로 추가 된'this'입니다. 리턴 타입으로'Promise AND this '가 될 필요가 있지만,'this'는 이미 그것이 작동해야한다는 약속이라고 가정합니다. –

답변

0

은 당신과 같이 유형 <any>로 캐스팅 할 수 있습니다.