UiElement型変数から表示されている文字列を取得する方法

Edgeの画面で表示されたポップアップ画面から表示されているテキストを取得したく、
[UiElement型変数].Get(“name”).ToStringで取得しようとしましたがString型変数の値は""となっていました。
デバッグでUiElement型変数の中身のセレクターを見るとname属性は表示されているテキスト以外にも複数あるので特定のメッセージを取得する方法が分かりません。

また「テキストを取得」アクティビティも使用したのですが、同様に""でした。

別のサイト内に表示されている文字列は「テキストを取得」で取得できたので、ポップのテキストを取得することはできないのでしょうか?
原因と方法が分かる方いましたらご教示お願いいたします。

Hi @alonica

Try using Get Attribute activity or in Get Text acitivity try changing the scraping method and check.

Regards

こんにちは

基本的にはテキスト取得アクティビティで可能と思います。まずはセレクターが想定している場所を示しているかの確認が必要と思います。
取り急ぎリボンメニュー上の要素をハイライトをOnにして、セレクターが想定している場所を示しているかの確認をしてみてはと思います。

もし場所が想定通りなら、スクレイピングメソッドを変更して取得できるかを確認してみてください。

image

Thank you for answering.
I already tried " UiElemet.Get(“name”).ToString" but result was “”…

ご回答ありがとうございます。
要素をハイライトをONにしたのですが、こちらはどの状態のときにハイライトされるのでしょうか?(デバッグ実行しているときですか?)
UiElementの変数の中を見ると表示されているテキストがname属性に入っているので恐らくセレクターの位置はあっているかと思います。

スクレイピングメソッドもすべて試したのですが結果は””でした。。

Hi @alonica

While indicating the target did you try changing UI Framework to Active Accessibility or UIA. Try that once and capture the text.

Regards

「テキストを取得」アクティビティで取得できました。。!
「アプリのステートを確認」の「ターゲットが出現」の下に「ブラウザを使用」を置きその中でテキストを取得していたのですが、「ブラウザを使用」の外(「ターゲットを確認」のすぐ下)に「テキストを取得」を使用することでできました。
そのあと「ブラウザを使用」の中に戻しても同じように取得できました。。

いまいち取得できなかった原因がわからないですが、ひとまず解決しました。
いつもご回答ありがとうございます、お手数おかけしました :smiling_face_with_tear:

要素をハイライトをONにしたのですが、こちらはどの状態のときにハイライトされるのでしょうか?(デバッグ実行しているときですか?)

デバッグ実行時になります。

name属性はあくまでHTMLのある要素のname属性になるかと思いますので、必ずしも表示されている内容とは同じにはならないと思います。あるいはaaname属性やinnnerText属性ならそれに近いものと思いますが。

UiElement変数.Selector.ToString の中でname属性が定義されていれば、最初のPOST通りGet(“name”)で取れそうなものですので、まずはこちらを確認いただいた方が良いと思います。
この中にあるのであれば、UiElement変数.Selector.ToStringの出力から正規表現で取ってくる方法もあると思います。

System.Text.RegularExpressions.Regex.Match(uie.Selector.ToString,"(?i)(?<=name=')[^']+").Value

ありがとうございます!
原因はわかりませんが、「テキストを取得」アクティビティで解決できました。。

こんにちは

入れ違いになりました。
上記にも記載しましたが、name属性はあくまでHTML上の要素の属性なので、中身とは無関係かと思います。
動的に内容を書き換えるページでしたら、中身がか空の状態でも要素ありと判断することがあります。あるいはタイミングの問題かもしれませんので、待機を設置することや、属性をaaname等表示されている内容を反映するものに変更したほうが良いかもしれません。

1 Like

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