回答受付終了まであと6日

HTMLをChromeのデベロッパーツールで見た時に、途中が「#~~」という表記で分割されていて、中身が恐らく別ページになっている(divの中なのに、headerなどが出てくる)ところは、 iframeなのでしょうか?? デベロッパーツール上の検索ツール(Ctrl+F)で、この「#shadow-root」の中身をXpath検索しても、検索該当になりません。 例えば、画像の、 「#shadow-root」の外にある「//div[@class="pp4b-header-controls layout-level-1"]を検索すると検索該当しますが、 「#shadow-root」の中にある「//div[@id="root-container"]」は検索結果が0件になってしまいます。 これを検索でヒットさせる方法はあるでしょうか? (VBAのSeleniumで#~~の中のアイテムを選択したい) こういう技術が使われている、という参考情報でも嬉しいです。

画像

HTML、CSS | PHP44閲覧xmlns="http://www.w3.org/2000/svg">100

回答(2件)

こんにちは。sele_chanです。 今回のご質問はiframeはありません。shadow-root内の要素検索ができるように特別な方法をとる必要があります。 VBAでSeleniumを扱うツールとして「SeleniumBasic」と「SeleniumVBA」があります。このうちshadow-root内の要素を特定するには、どちらのツールでも可能ですが、SeleniumBasicではJavaScriptを記述する必要がありますが、SeleniumVBAでは記述が楽になっています。 これはSelenium本家がSelenium4になって、JavaScriptが不要な専用メソッドが追加されたことにSeleniumVBAが対応したことによるものです。 一方、SeleniumBasicはサポートが停滞しているので、従来の方法のままで対応せざるを得ないことが影響しています。 SeleniumVBAの記事は以下のとおりですが、よくよく見ましたらサンプルページがリニューアルされていましたので、内容を本日更新しました。 https://qiita.com/sele_chan/items/5de93fa12fa3fcdc54cc

この回答はいかがでしたか? リアクションしてみよう