Htmlwindownameについて

Uipath2019.10にてhtmlwindownameをしていするとアクティビティの単体実行(アクティビティのテストなど)では動作するのですが通常の実行をすると正常にセレクタを認識してくれず、タイムアウトエラーになってしまいます。原因についてご教示いただけますでしょうか。

こんにちは

可能性の一つとしてセレクターで同じ条件を満たす要素が別にもあって、そちらを見に行って
しまっているのではと思います。
例えばurl属性でユニークに指定できそうなら、これを追加してみてはいかがでしょうか?
(そもそもhtmlwindownameが不要かもですが。)
あるいは別のアプローチとしてidx='*'を追加してみる手もあるかもしれません。

ありがとうございます。
ユニークはaanameにて指定しているのですが、うまくいかず。
他の要素を見に行っていてる節も見受けられない状態です。
暫定的にhtmlwindownameを使用しないやり方で回避しています

こんにちは

ユニークはaanameにて指定しているのですが、うまくいかず。

aaname属性は(トップレベルではなく)2行目以降のセレクターでの指定ではないでしょうか?
UiPathでは、まず対象とするウインドウをトップレベルのセレクターで特定しますので
同様の要素(ウインドウ)が2つ以上ある場合に、ユニークになるように指定できていないと、意図と
異なる方を見に行ってしまい、2行目以降でユニークに指定していても、結果的に
SelectorNotFoundになります。これは例えばウインドウの出現タイミングの問題等で
しばしば発生することがあります。(アクティビティ単体テストでは、そのウインドウの
出現が完了しているので正常に動作するように見えます。)

そのため、トップレベルのセレクターでユニークになるようにセレクターを調整する
ことが、最初のアプローチになるかと思います。url属性の指定というのはこの対応案の
一つになります。
一方 idx='*' のトップレベルセレクターへの追加については、これを指定していない
場合は上述の通り、最初に特定したウインドウしか検索しにいかないのですが、
指定すると同じ条件を満たす別のウインドウも見に行く(非貪欲検索)ので、
これで解消できる場合があります。

パフォーマンス的には前者の方が良いと思うので、まずは前者のアプローチが良いかと
思います。

1 Like