2010-12-14 15 views
1

JSF2.0にフィールドの検証が必要なページがあります。これはクロスフィールド検証であるため、フィールドをUIComponentにバインドしました。 3つのフィールドはすべて<h:inputText>です。すべてがHtmlInputTextにバインドされています。JSFでセレンの入力テキストが機能しない

検証方法は、HtmlInputTextすべての値を読み込むだけです。私は、アプリケーションを実行し、手でそれを使用するとかなりうまく動作します。問題は、セレンが値を入力するときには機能しません。セレンコードの一部は次のとおりです。

selenium.type("identifier=myForm:myTextField", "someText"); 

したがって、テキストフィールドにテキストを入力します。それは動作し、私はテキストが実際にそこにあるのを見ることができます。しかし、UIComponentsから値を読み取る検証メソッドをデバッグすると、値は "Submit"をクリックした後にnullになります。手で入力した場合はnullではなく、セレンが入った場合のみです。

なぜですか?なぜセレンが働かないのですか?それは私が手で行うこととかなり同じですが、それは手で行われ、セレンでは機能しません。

+0

セレンのような問題は一度もありませんでした。あなたはこれが 'binding'を使うコンポーネントに特有であることを示唆しているようです。だから、バインディングレスの入力フィールドはうまくいくのですか?とにかくモデル値は更新されていますか? Beanアクションメソッドが呼び出されていますか?いくつかの 'f:ajax'関与はありますか?とにかく、あなたの ''、関連するマネージドBeanコードと生成されたJUnit/TestNG '@ Test'メソッドを抜粋してみれば、問題を再現しようとするか、エラーを見つけ出すことができます。 – BalusC

+0

ありがとうございます@BalusC。私は、問題を発見し、それは私の次の質問に記載されています:http://stackoverflow.com/questions/4439716/問題は、非表示のフィールドは、フィールドの前に私が検証したいフィールドにあった。 – amorfis

+0

これはセレンの問題とどのくらい正確ですか?この隠しフィールドはJSで埋められていますか? – BalusC

答えて

0

JSF生成のIDは通常、割り当てたIDではありません。 JSFはIDのを担当するとして例えばmyFormと呼ばれる形式でmyTextFieldはID myForm:myTextField

+0

私はそれを考慮に入れました。たぶん私は私の例をあまりに単純化した、 "フォーム:myTextField"のようなものがあるはずです。とにかくそれは動作します。セレンで始まったブラウザで、テキストが埋め込まれているのがわかります。 – amorfis

0

を持つことになり、私はclassとしてレンダリングされるstyleClass属性の「ユニークID」を設定することを好みます。次に、そのクラスで入力を選択します。

要素に「一意のID」以上の値が設定されている可能性があります。次に、私は、一意のIDを含むクラスを持つ要素を検索することを好む。テストを変更せずにスタイリングを変更することができます。

関連する問題