2016-06-20 15 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のために動作すると思います。

このControlFlow-Magicを反映し、TypeScriptコンパイラを幸せにするには、どのように分度器のTypeScript Declaration Fileを拡張できますか?

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

醜いが、TSの苦情なしで動作します:

+1

正しい戻り値は、明示的に連鎖するために最近追加された 'this'です。戻り値の型は 'Promise AND this'である必要がありますが、' this'は既にそれがうまくいくと約束していると仮定します。 –

答えて

0

あなたがそうのようなタイプ<any>にキャストすることができます。