画面が非アクティブの状態でのシミュレートクリックについて

画面がアクティブ(前面)にならないとクリックができません。
エラーになっているわけではなく、シミュレートクリックができている前提でどんどん先に進み完了してしまいます。
しかし実際には何もクリックできていない状態です。
手動で画面をアクティブにするとクリックされ画面も正しく遷移します。

画面をアクティブ化する方法はありませんか?

試したこと
Activateアクティビティ⇒アクティブにならない
リトライスコープ⇒例外が発生しているわけではないので効かない

こんにちは

動作原理上、シミュレートクリックはウィンドウのアクティブ・非アクティブは関係ありません。
可能性としては

  • クリックする対象が有効になっていない
  • 違うウインドウの要素をクリックしに行っている

等が考えられます。特に後者はトップレベルのセレクターが同一のウインドウがある場合、アクティブな方が優先されますので、その観点でアクティブ・非アクティブが影響している可能性はあるかもしれません。

まずは原因の切り分けのために、
1.クリックの手前に数秒の待機アクティビティを入れてみて動作が改善するか確認する。
2.入力モードを、デフォルト(ハードウェアイベント)にしてみて
マウスカーソルが期待の位置に移動するかを確認する。
を試してみてはと思います。

ありがとうございます。

数秒待機では変わりませんでした。
また、ハードウェアイベントモードにしてみましたが実行モードでは症状は同じでした。
デバッグモードであればシミュレートクリックでもハードウェアイベントでも問題なくクリックがされます。

このときのマウスカーソルの動きはどのようになっていますでしょうか?
(対象まで正しく移動していますでしょうか?)
また対象システムは何でしょうか?(Webでしょうか?)

デバッグモードでは動きましたが実行モードではマウスカーソルが動きませんでした。
対象システムはIEで動くシステムになります。

補足です。
繰り返しの中で実施していて、最初の1回目のみでこの症状になり、1回目で自分で画面をアクティブにすると2回目以降は問題なくクリックされていきます。(ハードウェアイベント、シミュレートに関わらず)

例外は発生していないかと思いますので、エラー発生時に継続がプロパティがOFFであれば、
セレクターの問題かと思います。

対象が非アクティブな時、アクティブなウインドウ側に同様の要素があり、それをクリックしに行っている可能性があると思います。

具体的にセレクター指定はどのようになっていますでしょうか?
またトップレベルのセレクター指定はどのようにしていますでしょうか?(クラシックのアッタッチブラウザorモダンのブラウザを使用等)

セレクターは、ウィンドウタイトル+IDを指定しており、
ウィンドウタイトルを指定すれば他のウィンドウと被ることはないです。

クラシックのブラウザにアタッチを使用していましたが、外して直接クリックのセレクターに上記を指定してみましたが変わりませんでした。

こんにちは

クラシックのブラウザにアタッチを使用していましたが、外して直接クリックのセレクターに上記を指定してみましたが変わりませんでした。

具体的にどのように組まれているかわかりませんので判断はしかねますが、まずは原因の切り分けが必要かと思います。
デバッグモードでは正常動作とのことですので強調表示モードが使えないと思いますので、取り急ぎクリックの代わりに同様セレクターでハイライトアクティビティを設置してみて、セレクターがどこを参照しているかを確認してみてはと思います。

ほかの方のアドバイスもありますが、そもそもactivateアクティビティを使っても前面に出てこないというのもおかしい気がします。画面上でウインドウが当該ウインドウしかない状態でもうまく動かないのでしょうか・・・なにか根本的にセレクタがおかしい気もしますが、それだと例外発生しそうですし・・謎ですね
アクティブにならないと要素がイネーブルにならないとかWEBページ側の特殊要素なのかもしれませんが・・・

ハイライトアクティビティなるものがあるのですね。
早速やってみたのですが、しっかりクリックしたいボタンをハイライトできておりました。

ハードウェアイベントモードで、このハイライトのあとにクリックアクティビティを配置したところマウスカーソルがボタン上へ移動しました。
(クリックは相変わらずしませんでしたが)

他に良い切り分け方はありますでしょうか?

今回のケースでハイライトの後にシミュレートの場合はいかがでしょうか?

最初に検証いただいた際は、ハードウェアイベントの場合はマウス動作しなかったとのことですので、このあたりは少々動作が矛盾しているようにも思えますが...(双方ともデバッグではなく、実行モードでしょうか)

現状、この現象になっているのが二つのクリック要素で、それぞれのクリックの前にハイライトを配置しました。
クリックをシミュレートにしたところ、2つ目のクリックはクリックすることができました。
1つ目はこれまでと同様クリックできていませんがエラーにならず先に進んでいます。

はい、実行モードになります。
ハイライトアクティビティを置いたら初めてマウスカーソルがボタンの上に移動したような状態となります。

クリック対象の2つの要素ともハイライトでは、想定の場所を示しているということですよね。
対象がアクティブになる時間差の可能性もありますので、以下の様に待機アクティビティを試してもらえますでしょうか?(+可能でしたらFindElement)

数秒の待機アクティビティを設置

FindElementで最初のクリック対象を指定(UiElementを出力)

ハイライト:入力要素はFindElementの出力(対象要素がハイライトされることを確認)

シミュレートクリック:入力要素はFindElementの出力

FindElementで2つ目のクリック対象を指定(UiElementを出力)

ハイライト:入力要素はFindElementの出力(対象要素がハイライトされることを確認)

シミュレートクリック:入力要素はFindElementの出力

FindElementでシミュレートクリックにしたところクリックに成功しました!
本当にありがとうございます。
今回のシステムでウィンドウを閉じる際にセレクターでは閉じられなかったのにwindow変数で指定すると閉じられたのを思い出し、これも同様だったのかもしれません。

事象解消とのことですが、正確に原因が把握できていないので再発が心配ですね。
もしクリック成功により画面に何らかの変化が生じるようであれば、リトライスコープなどを併用して
失敗時リトライするようにしておいた方がよいかもしれません。ご参考まで

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.