2016-08-11 4 views
-1

マイページにはボタン、textboxex、select要素があります。しかし、PageFactory.initElements(driver、MyPage.class)を使用してページオブジェクトを初期化するとき、Select要素以外のすべての要素が初期化されます。セレンのページファクトリを使用して異なるWeb要素を単一ページで初期化するにはどうすればよいですか?

これは、FieldDecoratorまたはElementLocatorFactoryによって実現できます。しかし、私はそれらを使う方法を知らない。

この記事を参考にしてください。

My Code looks like this

答えて

0

variabe宣言から選択クラスを削除し、代わりにWebElementを追加します。 pagefactory.initelementsによって初期化されます。 次にselect select = new Select(service)を使用します。その要素とやりとりするためのあなたのコード内にあります。

もう1つのコーディング規則として、変数名は通常キャメルケースです。クラス名は大文字で始まります。

transactionamountsやコメントなどのxpathのいくつかを改良してください。開発者があなたのウェブページDOMを少しでも変更しても、それは失敗すると思われます。あなたはIDを持っているので、xpathの代わりにロケータとしてIDを使用します。開発者が確認したはずのidは一意であると仮定します。

+0

代わりにWebElementを使用して選択して解決します。私はそれを使用しました。しかし、Web要素からselectオブジェクトを作成するよりも、Selectオブジェクトを直接取得したいと考えています。 コード規約については、あなたが正しいです。しかし、xpathsの中で直接idを使うと、要素は可視の例外ではありません。だからこそ私はこのように使いました。 –

+0

これを見てください。 https://github.com/oraz/selenium。 FieldDecoratorを拡張することで実装されています。直接作業するか、修正する必要があります。すべての選択操作を、ページオブジェクトから呼び出せる別のクラスに移動してみてください。非常に奇妙なidで表示されない要素についてidsはブラウザから直接使用するときに機能しますか? – Grasshopper

+0

は複雑なようです。 –

関連する問題