ALL Program Selenium VBA

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

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

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

 
 

なぜinnerTextが使えないの?

結論、Seleniumでも innerTextは使えます。

しかし、Seleniumおいて、innerTextは「.textメソッド」で代用できてしまいます。
そのため、innerTextの使用方法があまり広まっていないのかもしれません。

例えば、VBAのIE制御における「innerText」と Seleniumの「text」について比べてみましょう。

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

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

「innerText」の部分が「text」に置き換わっているだけであることが分かりますね。
Nakamura

といったように、Selenium側では「innerText」でなくても「text」で代用できてしまうため、
ワザワザ「innerText」の使用方法など気にしない人が多いのかなと。

 

innerTextの使用方法

結論、以下の構文でVBA×Seleniumでも「innerText」は使用できます

構文

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

※前提※
・driverでChrome制御
・FindElementメソッドは適当なものであればOK(TagnameでもXPathでもOK)

.Attribute("innerText")」を使えば、
これまでのIE制御と同じように情報抽出できるのは、安心感があっていいですね。
Nakamura
 

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

次段で説明します。

 

注意点

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

それは、大文字・小文字も その通りに記載してあげないとVBA側で正しく認識してくれません。

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

注意ポイント

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

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

VBA×Seleniumでは、VBE上のコーディングを自動補完してくれる機能が乏しいため、自分で意識的に正しく入力してあげる必要があります。
今回のinnerTextでは「T」だけ大文字であり、自分で正しく入力してあげないといけないので気を付けて下さいね。
Nakamura

といった感じで、注意点は「正しく入力しましょう」ということでした。

 

終わりに

今回はここまでとなります。

VBA×Selenium は Google検索しても、全然 欲しい情報が出てこないから、きついですよね。笑

自分は仕事柄、EXCELでSeleniumをどうにしかしないといけないため、地道に勉強しながらトライ&エラーを重ねています。

有益そうな情報がありましたら、改めてブログを更新していきますので、よろしければ今後もお使いください。

でわでわ、本当に今回はここまでとなります。

おわり。




  • この記事を書いた人

Nakamura(nkmr)

NakamuraBlog(ナカログ)運営 [ 2.5万PV/月 ] │ブロガー│ 【経歴】IT会社に新卒入社 ▶︎ 通用しない ▶︎ プログラミングに出会う ▶︎ 年間1億円以上のコスト削減プログラムを開発 ▶︎ 会社賞受賞 ▶︎ 少しでも世の中の苦しんでる私と似た人に役に立てればと思いブログを開設。 ● 文系がプログラムと出会って会社員人生が変わった人。 ● 2020年より「嫁を置いて1人旅」の旅動画を投稿開始。

-ALL, Program, Selenium, VBA
-, ,