input
フィールドのテキストを置き換えようとしています。元のテキストfoo
が与えられているので、私はそれをbar
に置き換えようとしています。多くの場合分度器:テキストの変更を待っています
、これは期待通りに動作しますが、断続的に、私は結果がfoobar
、fooar
、foor
あるいはfoo
することができ、問題を見ています。これは、私のsendkeys()
が実行され始めたときに、テキストが不変の状態になることがあり、sendkeys()
の実行によって部分的に変更可能になることを暗示しているようです。
clear()
は、単にいくつかのケースでは、元のテキストを削除するために失敗し、私は前sendkeys()
に入力をクリアするためにclear()
を使用してみましたが、動作は変更されません。また、元のテキストがinput
に表示されるのを待ってから、を呼び出す前にinput
がクリック可能になるのを待ってから、それをクリックするのを待っていました。ここでも、元の動作は変更されません。ここで
は私input
です:
<input qva-select="" qv-enter="toggleEditMode()" type="text" maxlength="255" class="lui-input details-input ng-pristine ng-valid ng-not-empty ng-valid-maxlength ng-touched" ng-model="appModel.qTitle"> == $0
オリジナル分度器コードは単純だった:
titleInput: this.element(this.by.model('appModel.qTitle'))
titleInput.sendKeys('bar')
そして、ここでは、私が待機状態や他の未遂修正の束と、今持っているものです。
browser.wait(EC.textToBePresentInElementValue(titleInput, 'foo'), 60000)
browser.wait(EC.elementToBeClickable(titleInput), 60000)
titleInput.click()
titleInput.sendKeys(protractor.Key.CONTROL, 'a', protractor.Key.NULL, 'bar', protractor.Key.ENTER)
rにしようとする前にテキストが変更可能であることを確認する方法はありますか?それを置く?
私はあなたがカスタム繰り返し.clear()
メソッドの呼び出しを発行し、入力が空になるか、タイムアウトに達したときにのみ停止します待つ
持つことで、物事の信頼性を高めることができると思い
いいえ、エラーは発生しません。成功したかのように実行を継続します。 –
問題の根本原因は、 'input'の' qv-enter = "toggleEditMode()" '属性だと思います。私はこのオンラインについて多くのことを見つけることができませんでしたが(Qlik Viewと何らかの形で関係しているようですが)、名前はいくつかの条件が満たされるまで入力をブロックする責任があることを示唆しています。これは別のフレームワークなので、分度器はこのスクリプトが終了するのを待つべきであることを知る方法がありません。カスタムウェイトが唯一の方法だと思われます。 'toggleEditMode'関数の内部知識は、もしあなたがそれらを提供できるなら、間違いなく助けになるでしょう。 –
この属性は、入力に 'return'文字が入力された場合のみ処理します。その後、ページを 'read-only'に戻します。私はここで何が起こっているのかがその役割を果たしているとは思わない。 –