5

テーブルの行を見つけようとします。まず、Ranorex Spy を使用し、次の rXpath 式を使用してみました。

/dom[@domain='127.0.0.1']//table//td[@innertext='john.doe@acme.com']/../following-sibling::tr/.[1]

Ranorex Spy は、このタグを正常に検出して強調表示します。しかし、Ranorex API を使用してこの要素を見つけようとすると、結果が返されません。コードは次のとおりです

// path is exactly rXpath expression which is used for Ranorex Spy
IList<Ranorex.Core.Element> elements = Host.Local.Find(path);

私の間違いはどこですか、またはrXpathに問題がありますか?

4

1 に答える 1

3

実際には解決策ではなく、回避策です。

次の XPath は、 から特定のエントリを取得します。[1] は目的の要素のインデックスです。

    /dom[@domain='127.0.0.1']//table//td[@innertext='john.doe@acme.com']/../following-sibling::tr/.[1]

したがって、すべての要素をコレクションとして取得し、適切なインデックスを持つ要素を使用するという考え方です。

String tableRowShortXpath = "/dom[@domain='127.0.0.1']//table//td[@innertext='john.doe@acme.com']/../following-sibling::tr";
IList<Ranorex.WebElement> elements = Ranorex.Host.Local.Find<Ranorex.WebElement>(tableRowShortXpath);
Ranorex.WebElement desiredElement = elements[rowIndex - 1];

私の目的にはそれで十分ですが、要素が直接の XPath クエリで見つかった場合、動作は 2 倍遅くなります。

于 2014-05-06T13:07:44.210 に答える