ALL Program Selenium VBA

【VBA×Selenium】outerHTMLの使い方【注意点あり】

VBA×SeleniumのouterHTMLの使い方(注意点あり)
これまでVBAIE制御で「outerHTML」を使っていましたが、
Seleniumで「outerHTML」が使えません
どうすれば使えるようになりますか?
 

こんな疑問について回答します。

 
 

なぜouterHTMLが使えないの?

結論から先に述べると、SeleniumouterHTMLは使用できます

しかし、VBAにおけるSelenium制御となると、VBE上のコーディング自動補正機能が上手く行かず
outerHTML正しくプログラム認識されずに、使えないと結論づけてしまう人が多い印象です。

具体的には、このような感じ。

コーディング例

■正しい記入例
driver.FindElementByID("〇〇〇").Attribute("outerHTML")

■間違った記入例
driver.FindElementByID("〇〇〇").Attribute("outerHtml")

↑において 赤字で強調していますが、outerHTML大文字アルファベット含め正しく入力する必要があります。

同じことを繰り返し言っちゃいますが、VBE上ではSeleniumに関するプログラムコードの自動補完機能が乏しいから、こうなってしまいます。
VBA×InternetExploreのDOM操作の場合では、「outerhtml」と入力すれば「outerHTML」と自動補正してくれたからこそ、今回の場合は気づきにくいポイントですね。
Nakamura
 

といった形で、ほぼ結論は書いちゃっていますが、次段で 正しいコーディング例を紹介します。

 

outerHTMLの使用方法

以下の構文を使えば、VBA×Seleniumでも outerHTMLが使用できます

構文

driver.FindElementByID("〇〇〇").Attribute("outerHTML")

※前提※
・driverでChrome制御
・FindElementメソッドは適当なものであればOK(TagnameでもXPathでもOK)
・outerHTMLは「outerhtml」等に改変すると動かくなるので注意

.Attribute("outerHTML")」を使えば、
これまでのIE制御と同じように情報抽出できるので、知っていて損をしない手法ですね!
Nakamura
 

しかしながら、ちょっとだけコーディング時に注意点もあります。

次段で説明します。

 

注意点

前段で説明した「.Attribute("outerHTML")」ですが、注意点があります。

既に、冒頭の方で説明していますが、改めて。

.Attribute("outerHTML")」は 大文字・小文字も その通りに記載してあげないとVBA側で正しく認識してくれません

これってどう意味かというと 以下の通り。

注意ポイント

■正しい記入例
driver.FindElementByID("〇〇〇").Attribute("outerHTML")

■間違った記入例
driver.FindElementByID("〇〇〇").Attribute("outerHtml")
driver.FindElementByID("〇〇〇").Attribute("OuterHTML")
driver.FindElementByID("〇〇〇").Attribute("OuterHtml")

"outerHTML"は正しく入力しましょうね。
Nakamura
 

VBAでIE制御する場合と、Selenium制御する場合を比較してみましょう。

構文

■IE制御の場合(変数ojtにIEブラウザ格納している前提)
ojt.document.getElementByID("○○○").outerHTML

■Seleniumの場合(変数driverでChrome制御している前提)
driver.FindElementByID("〇〇〇").Attribute("outerHTML")

Seleniumの方がコーディングが やや長くなる傾向がありますのね。
Nakamura
 

知ってしまえばこんなものですので、是非ぜひ Seleniumライフを充実させてください。

 

終わりに

VBA×SeleniumはGoogle検索しても、欲しい情報がクリティカルに出てこないから、結構キツイですよね。

なんといいますか、Selenium利用者人口が少ないことを痛感させれます。笑
Nakamura

すごく便利なのに勿体ないですよね。

 

ちなみに、VBA×Seleniumにおける「innerText」の使用方法や注意点についても、
別記事でまとめてますので、よろしければどうぞ。(所要時間:3分くらい)

【VBA×Selenium】innerTextの使い方【注意点あり】
【VBA×Selenium】innerTextの使い方【注意点あり】

続きを見る

 

今後も、数少ない VBA×Selenium利用者の人向けに、有益そうな情報がありましたら発信していきます。

せっかくの同志の皆様と出会えたことに感謝しつつ、今回はここまでとさせていただきます。

これからもNakamuraBlogをどうぞよろしくお願いいたします。

おわり。

 




-ALL, Program, Selenium, VBA
-, , ,