非活性のボタンの認識

いつもお世話になっております。

「印刷」ボタンが非活性の時は(下の添付のような状態)、印刷ボタンを押さず他のボタンを押させたいのですが、ボタン自体は存在しているためか「印刷」ボタンを押してしまいます。
image
ちなみに活性時も、非活性時もセレクターは同じです。

何か良い案はないでしょうか。
よろしくお願いいたします。

こんにちは

対象はWin32(デスクトップ)アプリケーションでしょうか?(ブラウザ上でのWebではなくて)

できるかどうかはアプリケーションの構造にも依存しますが、
一度UiExplorer で当該要素を選択してaastate属性の内容を確認してみてください。
あるいは試しにGetAttibutre(属性を取得)アクティビティで"aastate"を指定して、取得してみても良いかもしれません。

ご回答ありがとうございます。
対象がWin32かどうかは分からないのですが、UiExplorer でaastate属性を確認したところ、一番左側にaastateという項目がないのですがaastate属性はこの場合存在しないということなのでしょうか。
image
image

また、属性を取得も試してみたのですが、メッセージボックスには何も表示されませんでした。(出力の結果にダミーという変数を置きました)
image

なにか良い案があればご教授お願いいたします。

@rkym123456 さん

Yoichiさんの言った通り、一般的な解決策は
ボタンの非活性時と活性時のすべての属性を取得して比較して、差異がある属性で判断します。
aastateがなければ、それ以外の属性を利用する可能性をご確認ください。

1 Like

回答ありがとうございます。

最初に書いた通り、活性時も非活性時もセレクターの値は同じなのです(すべての属性にてチェックを入れてセレクターを比べた結果です)

人間が見たら色がついてる付いてないで判断できるのに、もどかしいところです。

こんにちは

おそらくUiExplorerで見ている場所が違います。
左側にある、プロパティエクスプローラーで確認ください。あるいは属性取得で実際に取得してみる方が早いかもしれません。

回答ありがとうございます。

教えていただいた通り、左側のプロパティエクスプローラーの活性時と非活性時のものを比べてみたのですが、同じのようです。

困りました。

当該ボタンが活性状態でクリックした後に画面上変化する点はありますか?(ポップアップが出る、など)
対処療法的ですが、クリック後一定時間経っても発生すべき変化が発生しないことを検知して、非活性と判断して処理を分岐させるということが出来るかと考えました。

回答ありがとうございます。

印刷ボタンが非活性時は数字が入っている欄が赤く表示され、印刷ボタンが活性時は何も変化はない状態です。

<印刷ボタン非活性時の状態>
image

<印刷ボタン活性時の状態>
image

他の箇所は活性時と非活性時で変化する箇所は人間が見る限りありません。

Uipathに色を識別できるアクティビティ(エクセル以外でも)があるといいのになと思いました。

こんにちは。
良い回答ではないと思いますが、ここまで来たら。
画像の有無を確認、で数字にかからないように赤い部分を選択するのではどうでしょうか。
他に赤い部分があると使えないですが。

1 Like

回答ありがとうございます。

画像の存在を確認(バージョンの違いでしょうか、画像の有無を確認がなかったので)→条件分岐でやってみたのですが、色を識別しないようで、どちらもtrueになりました。

他の角度から何かアプローチを探そうと思います。

みなさま色々ありがとうございました。