既存のアプリケーションには html テーブルがあり、body タグ内に同じ名前の td タグが複数あります
それらのすべてが同じ XPath を持っているため、Ranorex はそれらすべてをリポジトリに追加することはできません。
これらのアイテムをリポジトリに追加するにはどうすればよいですか?
録音してみたところ、自動で作成されたリポジトリにはリポジトリアイテムが1つしか含まれていませんでした..
注: アプリケーションに変更を加えることはできません
既存のアプリケーションには html テーブルがあり、body タグ内に同じ名前の td タグが複数あります
それらのすべてが同じ XPath を持っているため、Ranorex はそれらすべてをリポジトリに追加することはできません。
これらのアイテムをリポジトリに追加するにはどうすればよいですか?
録音してみたところ、自動で作成されたリポジトリにはリポジトリアイテムが1つしか含まれていませんでした..
注: アプリケーションに変更を加えることはできません
これは、アイテムをリポジトリに追加するときに与えられる Ranorex XPath とは何かなど、より多くの情報があればより簡単になります。
また、Max が前述したように、ENTIRE テーブルをリポジトリに追加してから子孫を検索する方法以外の注: 子ではありません。時間 (次のようになります):
foreach(Ranorex.TdTag tags in repo.testWebsite.tdTable.FindDescendants<Ranorex.TdTag>())
{
if(tags.TagValue.contains("<tagname>"));
{
tags.<DOSOMETHING>();
}
}
これはすべてのタグを通過し、それらに対して同じことを行う必要があることに注意してください。
これ以外では、おそらくすべてのタグがリポジトリで同じように検出されて表示されますが、それらは複数あるため、ルート フォルダーに押し込んで、ENTIRE テーブルをルートとして追加し、次に追加することができる場合があります。配列アイテムとしての td タグ。
.//div[#'pagecontent']/div[1]/div[2]/div/div/ul/form[2]/li/input[@name='Submit']
上記の例には複数の /div セクションがあるため、[#]、div[1]、または div[2] のいずれを検索するかを決定します。これらは最初または 2 番目の /div タグに出くわすためです。tdTags は、tdtag[1]、[2]、[3] などのタグを付けることができるという点で同じように機能する可能性がありますが、目的のリポジトリ アイテムを作成できるため、試してみる価値があるかもしれません。 .
私自身これにはかなり慣れていないので、仮定について間違っている可能性があります。
EDIT待って、マックスは自分の質問に答えましたか? ハハ...
方法は次のとおりです: 親要素を検索し、コードで子の検索を使用します
これにより、実際にアイテムをリポジトリに追加することはできませんが、少なくともアイテムのリストを取得して、リストを反復処理することで個別にアクセスできます!
これらの要素を公開するカスタム UI オートメーション プロバイダーを作成する必要があります。詳細については、System.Windows.Automation.Provider 名前空間を参照してください。
私が見つけた最も簡単な方法は、すべてのアイテムを表す単一のアイテムをリポジトリに追加することです。すなわち。「./Select/option」は、オプション リスト ボックス内のすべての要素を認識し、ユーザー コードで repoiteminfo.createAdapters ( http://www.ranorex.com/Documentation/Ranorex/html/M_Ranorex_Core_Repository_RepoItemInfo_CreateAdapters__1.htm ) メソッドを使用して作成します。各要素の個別のアダプター