4
のアクション、それは「クリア」と、このような要素の「のSendKeys」のような連鎖行動することが可能となる連鎖を反映する方法:分度器の(ControlFlow)(webdriverを)分度器試験では活字体
element(by.id('myId')).clear().sendKeys('123456789')
Iをそれのコンパクトなスタイルのように。しかしそれはなぜ機能するのですか?私は活字体(は1.8.x)でそれをコンパイルするとwebdriver.Element.clear()のAPIのドキュメントをクリアの戻り値の型()によると
がwebdriver.promise.Promise.<void>
で、コンパイラはPromise
にsendKeys()
と呼ばれる全く性質がないと文句を言い。そして、私はそれが実際に事実だと思います。
これは実行時にWebDriver ControlFlow Magicのために動作すると思います。
このControlFlow-Magicを反映し、TypeScriptコンパイラを幸せにするには、どのように分度器のTypeScript Declaration Fileを拡張できますか?
(<any> someInput.clear()).sendKeys()
醜いが、TSの苦情なしで動作します:
正しい戻り値は、明示的に連鎖するために最近追加された 'this'です。戻り値の型は 'Promise AND this'である必要がありますが、' this'は既にそれがうまくいくと約束していると仮定します。 –