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
といったように、Selenium側では「innerText」でなくても「text」で代用できてしまうため、
ワザワザ「innerText」の使用方法など気にしない人が多いのかなと。
innerTextの使用方法
結論、以下の構文でVBA×Seleniumでも「innerText」は使用できます。
構文
driver.FindElementByID("〇〇〇").Attribute("innerText")
※前提※
・driverでChrome制御
・FindElementメソッドは適当なものであればOK(TagnameでもXPathでもOK)
これまでのIE制御と同じように情報抽出できるのは、安心感があっていいですね。
しかしながら、ちょっとだけコーディング時に注意点もあります。
次段で説明します。
注意点
前段で説明した「.Attribute("innerText")」ですが、注意点があります。
それは、大文字・小文字も その通りに記載してあげないとVBA側で正しく認識してくれません。
これってどう意味かというと 以下の通り。
注意ポイント
■正しい記入例
driver.FindElementByID("〇〇〇").Attribute("innerText")
■間違った記入例
driver.FindElementByID("〇〇〇").Attribute("innertext")
今回のinnerTextでは「T」だけ大文字であり、自分で正しく入力してあげないといけないので気を付けて下さいね。
といった感じで、注意点は「正しく入力しましょう」ということでした。
終わりに
今回はここまでとなります。
VBA×Selenium は Google検索しても、全然 欲しい情報が出てこないから、きついですよね。笑
自分は仕事柄、EXCELでSeleniumをどうにしかしないといけないため、地道に勉強しながらトライ&エラーを重ねています。
有益そうな情報がありましたら、改めてブログを更新していきますので、よろしければ今後もお使いください。
でわでわ、本当に今回はここまでとなります。
おわり。