2017-06-08 6 views
0

Selenium Webドライバを使用して自動化しようとしているEXTJSアプリケーションのドロップダウンボタンを処理しています。私はSelenium webdriverでExtJS要素を識別する

から選択]をクリックし<DIV>の の形で要素のリストを取得する画像上の

クリックすると、どのように私は使用しないでください。この画像をクリックするデバイスのxpath、できる私を助けてください"id"(そのextjsとして、それは毎回変わるかもしれない)。 extjsに使用できるセレクタがある場合は、お勧めします。ご協力いただきありがとうございます。必要なimg要素と一致するXPath以下

<DIV id=ext-gen2337 class=x-form-field-wrap style="WIDTH: 0px"> 
    <INPUT id=ext-gen2023 class=" x-form-text x-form-field" style="WIDTH: 297px" readOnly size=24 value="Clients with pending exceptions" name=ext-gen2023 autocomplete="off"> 
    <IMG id=ext-gen2338 class="x-form-trigger x-form-arrow-trigger" src="https://cloud-ua1.statestr.com/epwais/html/com.ssc.epw.gui.EPWHome/clear.cache.gif"> 
</DIV> 
+0

をExtJSテストに合わせて調整されています。 – Alexander

答えて

1

試してください:あなたはExtJSのアプリのテストを開始したいとあなたは煎茶のテストとして、このように最適なソリューションを使用したくないのであれば

//input[@value="Clients with pending exceptions"]/following-sibling::img 
0

をかブライアン・シエスタ。

これに最も近い方法は、ExtJSコンポーネントとサイトのhtml domの間に独自のレイヤーを書き込むことです。

あなたはセレンであなたは、サイト上でJavaScriptコードを実行することができ、私のここでの答えhttps://stackoverflow.com/a/41718879/1768843

しかし、あなたがする必要があるExt.Component.Queryを使用することですで詳細情報を見ることができます。したがって、extクエリを実行してExtセレクタを渡します。たとえば、button[text=something]またはpanel[name=mainPanel]のようにExtJSコンポーネントセレクタを指定するだけです。これにより、ExtJSオブジェクトが返されます。.getDom()または.getId()を呼び出すと、HTMLで使用されている実際のDOMまたはIDが返されます。次に、Webdriver関数を使用して、サイト内のHTML要素をクリックするだけです。

^^ ExtJSフレームワークが毎回少しずつHTMLを生成できるため、これを行う必要があります。たとえば、新しいコンテナを追加したり、ExtJSのバージョンをアップグレードすると、HTMLが変更され、テストが機能しなくなる可能性があります。しかし、Extのソースコードと同じようにExtコンポーネントをログとして呼び出すと、テストは常に動作します。

しかし、これは非常に面倒で多くの作業です。 Sencha Testのような、既にすべてがExtJSアプリのテストを準備しているような、用意されたソリューションを使用する方がはるかに優れています。

0

私はこのようなものだろう:あなたはBryntumシエスタ、ExtJSの中で、特別製のテスト自動化フレームワークを見てしたいことがあり、サイドノートでは

driver.findElement(By.xpath("//div[contains(@class, 'x-form-field-wrap')]//img")); 

または

driver.findElement(By.xpath("//img[contains(@src, 'https://cloud-ua1.statestr.com/epwais/html/com.ssc.epw.gui.EPWHome/clear.cache.gif')]")); 
関連する問題