2017-07-20 15 views
0

私の自己テスト(セレン)に1つの問題があります。このフィールドにDeffered計算で入力フィールドに最後に入力されたシンボルが表示されない

<input data-bind="value: searchText, valueUpdate: 'afterkeydown'"></input> 

とモデル::Webフォームでの1つの入力フィールドです

defferedSearchFilter変数の値によって

this.searchText = ko.observable(''); 
this.invert = ko.observable(false); 
this.defferedSearchFilter = ko.pureComputed(function() { 
    return { 
     text: this.searchText(), 
     invert: this.invert() 
    } 
}, this).extend({ rateLimit: { timeout: params.throttleInterval || 500, method: 'notifyWhenChangesStop' } }); 

は、リストがフィルタリングされます。自動テストチェックアルゴリズムによってこのフィルタ:

  1. は、いくつかの情報項目に隠しているので、アイテムをクリックすることによって濾過のため
  2. 待機入力フィールドに値%リストに
  3. チェック項目95%を入力してください。

時には(チャンス< 1%)計算フィールドが最後に入力されたシンボルを表示しないため、2回発生します。例えば、私はセレン及びクロムからログを収集する(スクリーンショットは、それらの確認):

セレン: [2017年7月17日15:41:31224(DEBUG)By.CssSelector塗りつぶし:.col3 .entityContent#linkListFastSearch_0を、値を入力する:%95% - 成功

この瞬間、セレンはスクリーンショットを作成します。入力の値 - % 95%

クローム: [5624:5680:0717/154131.625:INFO:コンソール(42)] "FASTSEARCH ID = 4変更新しいテキスト=" % 95 ""、出典:http://localhost/WebUI/Scripts/uicontrols/basic/fastsearch.js(42)

セレンが項目をクリックした後。 [ID = 'linkTargetCode_95'] - 成功

そして、スロットルインターバルの計算フィールドが正しい値に変更された後。クロム: [5624:5680:0717/154134.802:INFO:コンソール(42)] "FASTSEARCH ID = = 4変更新しいテキスト" % 95% ""、ソース:http://localhost/WebUI/Scripts/uicontrols/basic/fastsearch.js(42)

誰もこのような問題に遭遇しましたか?

答えて

1

textInputを使用してみてください。textInputバインディングは、テキストボックス()またはテキスト領域()をviewmodelプロパティにリンクし、viewmodelプロパティと要素の値の間で双方向の更新を提供します。

値バインディングとは異なり、textInputは、オートコンプリート、ドラッグアンドドロップ、クリップボードイベントなど、あらゆるタイプのユーザー入力に対して、DOMからインスタント更新を提供します。

<input data-bind="textInput: searchText" /> 

ブラウザは、切断などの異常なテキスト入力機構、ドラッグ、またはオートコンプリート提案を受諾に応答して発射イベントで非常に一貫性がありません。valueバインディングは、特定のイベントの更新を取得するためのvalueUpdate:afterkeydownなどの追加オプションを使用していても、すべてのブラウザのすべてのテキスト入力シナリオに対応しているわけではありません。

textInputバインディングは、珍しいテキスト入力メソッドに応答しても、一貫性のある即時のモデル更新を提供するために、幅広いブラウザの癖を処理するように特別に設計されています。

http://knockoutjs.com/documentation/textinput-binding.html

+0

素晴らしい!それは私のためにうまくいく。非常にマッチしてくれてありがとう –

関連する問題