2017-03-22 6 views
0

私はVaadinに保存ボタンとテキストフィールドを作成しました。保存ボタンの状態(有効/無効)は、ValueChangeListenerで入力されたテキストフィールドにバインドされます。テキストフィールドが空の場合、保存ボタンは無効にする必要があります。そうでない場合は、有効にする必要があります。Vaadinテキストフィールドとセレンのテスト

これは一生懸命に動作しますが、Seleniumはテキストを正しく設定していません。 Seleniumがテキスト入力を設定しているのを見ることができますが、保存ボタンが有効になっていません。

new Actions(getDriver()).moveToElement(wrappedElement) 
    .click() 
    .sendKeys(SELECT_ALL_SHORTCUT, Keys.DELETE) 
    .sendKeys(wrappedElement, text) 
    .sendKeys(Keys.TAB) 
    .moveByOffset(1, 1) 
    .perform(); 

私は、テキストを設定するには、様々な方法の多くは、私は、少なくともそれは時々動作しますが、テキストが設定されているブラウザでご覧ください、常に変化するdoes notのボタンの状態を保存することができます試してみました。

答えて

0

textFieldにフォーカスイベントが発生していないため、その時点で値が正しく設定されていません。最も簡単な方法は、保存ボタンをチェックする前にいくつかの他のアクションを実行することです。たとえば、click()を他のテキストフィールドで実行すると、textFieldのフォーカスが失われ、テキストが正しく保存されます。 もう1つのオプションは、このイベントをトリガーするJavaScript関数ですが、これはより複雑なソリューションであり、ページ固有の実装に依存します。

+0

私はまた、テキストを設定した後に、テキストフィールドをタブアウトするようにSeleniumに指示した理由が問題であるとも考えていました。保存ボタンにバインドされたテキストフィールドに入力を設定した後、他のテキストフィールドにいくつかの入力を設定したので、これは解決策ではありません。 – unrated

+0

他のフィールドに入力を設定する代わりに、click()アクションを実行してみてください。 TABアクションは、このような状況ではあまり役に立ちません。それだけです、私は他の解決策から外れています。 :) – acikojevic

関連する問題