投稿者 でふぁいあんと  (社会人) 投稿日時 2023/1/2 21:49:42
魔界の仮面弁士様 正月早々のお返事ありがとうございます。

まずは、環境ですが、
職場がwin10 64bit + edge
自宅が、win11 64bit + edgeです。

>デスクトップからこの条件だけで Subtree を絞り込むのは、若干大雑把過ぎませんか?
おっしゃる通りです。手を抜いて申し訳ないです。
とりあえず過去に動作したソースを利用しました。

また、msnだと画面が動くWebなので、
改めてこちらの
[VisualBasic中学校]のトップページで確認しました。
edgeのタブは1つのみです。

そこで再度、Edgeから、ClassNameで、追いかけると
Chrome_WidgetWin_1
 BrowserRootView
  NonClientView
   GlassBrowserFrameView
    BrowserView
     SidebarContentsSplitView
      SidebarContentsSplitView
       SidebarContentsSplitView
        SidebarContentsSplitView
         View

ここまでは、追えるのですが、
Inspectにて、Viewの下を確認すると

View(Class)
 |--WebView(Class)
 |--Chrome_RenderWidgetHostHWND(Class)
     |-Visual Basic 中学校(Name)---->(a)
となっていますが

プログラムから
Viewの配下をClassNameにて検索すると
Set uiCnd = uiAuto.CreatePropertyCondition(UIA_ClassNamePropertyId, "WebView")
または
Set uiCnd = uiAuto.CreatePropertyCondition(UIA_ClassNamePropertyId, "Chrome_RenderWidgetHostHWND")
両方とも、存在が無いことになります。
そこで
Viewから
Set aryElm = elmOne.FindAll(TreeScope_Children, uiAuto.CreateTrueCondition)
Set elmSecond = aryElm.GetElement(0)
こうすると、
elmSecondは=Visual Basic 中学校(Name)(a)の要素を取得します。

このClassName:WebView
及び ClassName;Chrome_RenderWidgetHostHWND
を、拾えないのは何故なのでしょうか

>Chrome_RenderWidgetHostHWND などの階層が動的に変化する点にも注意。
Visual Basic 中学校 を開いたままブラウザを更新して
Inspectも更新して、階層を確認すると
やはり
ClassName;Chrome_RenderWidgetHostHWNDは存在しています。