2016-09-29 7 views
1

私はwicket(フレームワーク)基本Webアプリケーション用の自動テストスクリプトを開発しようとしています。wicketフレームワーク(Java)基本Webアプリケーションの自動化

私はSelenium 2.44 jars(プラグイン)とFirefox 23バージョンを使用しています。また、Firefoxアドオン、Firebug、FirePathを使用してWeb要素を検査し、FirePathを使用してWeb要素のxpathを取得しています。しかし、私が直面している問題は、WebアプリケーションのHTML IDが動的であることです。つまり、変更されるたびにxpathが変化し、要素を検出するときに「NoSuchElementException」が発生することを意味します。

+1

cssセレクタを使用してください。セレクタのヘルプが必要な場合は、id値を持つビューの例を追加してください。 – lauda

答えて

3

DebugSettingsでsetComponentPathAttributeName()を設定します。それは、wicketがhtmlへのパスをレンダリングさせる原因になります。パスは、コンポーネント階層を変更する場合にのみ変更する必要があります。

public void init() { 
    super.init(); 

    getDebugSettings().setComponentPathAttributeName("wicketpath"); 
} 

これは、あなたのHTMLが見えるように発生します:

<form wicket:id="form" id="form1" wicketpath="form" method="post" action="./?0-3.IFormSubmitListener-form"> 
<div wicket:id="childField" wicketpath="form_childField"></div> 
</form> 
0

あなたのページのHTMLソースのスニペットを提供する場合それが良いだろう。 今のところ、contains()、following()などの動的Xpath関数を試すことができます。 By.xpath( "// div [contains(text()、 'someクラス名の一部またはクラス名の一部が動的である場合は変更されません)]/following :: * ") または By.xpath(" // div [クラス名の一部またはクラス名の一部が動的である場合は変更されません)]/following :: div ")

このような(@ class、

+0

ああ@プリヤは私のために働いた同じことに感謝...初心者として、私はxpathクエリを構築することができませんでした..今、その作業。 ...ありがとうございました:) –

+0

@SnehaNigamそれを知ってよかったです。 役に立つと思われる場合は、その投票にも投票できます。 :) –

関連する問題