ExtJs を使用して構築された Web アプリケーション用の Web ベースの自動化ソリューションを開発しています。
現在、Web 要素を最適な方法で識別するさまざまなオブジェクト識別手法をテストしています。
IE 開発者ツール (F12) を使用して、ページ上の DOM オブジェクトを強調表示して選択し、(何らかの方法で) 対応する ExtJs コンポーネントを (itemId などの対応するプロパティと共に) 取得します。
これは、コードまたは他の手法を使用して行うことができますか?
ExtJs を使用して構築された Web アプリケーション用の Web ベースの自動化ソリューションを開発しています。
現在、Web 要素を最適な方法で識別するさまざまなオブジェクト識別手法をテストしています。
IE 開発者ツール (F12) を使用して、ページ上の DOM オブジェクトを強調表示して選択し、(何らかの方法で) 対応する ExtJs コンポーネントを (itemId などの対応するプロパティと共に) 取得します。
これは、コードまたは他の手法を使用して行うことができますか?
私はそのようなことを行うための IE 開発ツールに慣れていませんが、特定のコンポーネントとその要素をターゲットにして答えようとすることはできます。
いくつかの方法で Ext コンポーネントをターゲットにすることができます:
Ext.ComponentQuery.query(CQselector)メソッド (例についてはドキュメントを参照してください)Ext.getCmp(componentID)コンポーネントIDがわかっている場合Ext ライブラリがロードされているため、これらのメソッドのいずれにもページからアクセスできます。FF や Chrome などのブラウザーでは、これらのメソッドをコンソールから直接実行できます。同様に、それらは IE 開発ツールでも利用できるはずだと推測しています。
Ext コンポーネントへの参照を取得すると、.dom や .el などのプロパティを介して HTML 要素を取得できます。または、 Dom クエリを直接使用することもできます。
何を探しているのかわかりにくいですが、レンダリングされた Ext.Component への参照を取得しようとしている場合は、HTML 構造でコンポーネントのラッパー ノードを探すことができます。HTML ID はコンポーネント ID と同じです。実行var comp = Ext.getCmp('some-id-12345')して何かが返された場合は、 のラッパーが見つかりましたExt.Component。
その後、使用できます
comp.itemId
itemId を取得するには
http://www.illuminations-for-developers.com/ Ext.Components を表示する firebug のプラグインを調べてください。
Sencha Page Analyzerを使用して、コンポーネント ツリー全体を表示することもできます。
itemId ではなく id プロパティを設定すると、コンポーネントの最上位コンテナーの html id プロパティとして渡されるため、目的の結果が得られると思います (と思います!)。ほとんどの extjs コンポーネントで使用されるネストされた div/table の量を考えると、正確に動作させるのは少し複雑です。幸運を!